QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#485781 | #385. 游戏 | weiguoliang | 100 ✓ | 8ms | 17868kb | C++14 | 2.6kb | 2024-07-21 08:38:41 | 2024-07-21 08:38:42 |
Judging History
answer
#include<bits/stdc++.h>
#define ll long long
#define N 100005
using namespace std;
struct node{
ll t,n;
}edge[N<<1];
struct no{
ll f,t;
char hf,ht;
}x[N];
ll head[N],cn=-1,n,m,d,a[N],low[N],dfn[N],cnt,be[N],nt;
bool p,vis[N];
vector<ll>v;
stack<ll>s;
ll read(){char c=getchar();
ll n=0;
while(c<'0'||c>'9')c=getchar();
while(c<='9'&&c>='0')n=(n<<1)+(n<<3)+c-'0',c=getchar();
return n;
}
void add(ll a,ll b){
edge[++cn]={b,head[a]};
head[a]=cn;
}
char r(){char c=getchar();
return c==' '||c=='\n'?r():c;
}
ll z(ll k,char p){
return ((a[k]==2||a[k]==1)&&p=='A')||(!a[k]&&p=='B')?k:k+n;
}
ll zf(ll k,char p){
return ((a[k]==2||a[k]==1)&&p=='A')||(!a[k]&&p=='B')?k+n:k;
}
char pd(ll i){
if(be[i]<be[i+n]){
if(a[i]==0)return 'B';
else return 'A';
}
else{
if(a[i]==2)return 'B';
else return 'C';
}
}
void tarjan(ll f){ll i;
low[f]=dfn[f]=++cnt,s.push(f),vis[f]=true;
for(i=head[f];i!=-1;i=edge[i].n){
if(!dfn[edge[i].t])tarjan(edge[i].t),low[f]=min(low[f],low[edge[i].t]);
else if(vis[edge[i].t])low[f]=min(low[f],dfn[edge[i].t]);
}
if(dfn[f]==low[f]){ll t;nt++;
do{t=s.top(),s.pop();
be[t]=nt,vis[t]=false;
}while(t!=f);
}
}
//a为不要A,b为不要B,c为不要C,i为第一个可用,i+n为第二个
int main(){ll i,k;char c;
ios::sync_with_stdio(0);
cout.tie(0);
n=read(),d=read();
memset(a,-1,sizeof(a));
for(i=1;i<=n;i++){c=r();
switch(c){
case 'a':a[i]=0;break;
case 'b':a[i]=1;break;
case 'c':a[i]=2;break;
case 'x':v.push_back(i);break;
}
}m=read();
for(i=1;i<=m;i++)x[i].f=read(),x[i].hf=r(),x[i].t=read(),x[i].ht=r();
for(i=0;i<(1<<d);i++){memset(head,-1,sizeof(head)),memset(dfn,0,sizeof(dfn)),cnt=0,cn=-1,p=true,nt=0;
for(k=0;k<d;k++)a[v[k]]=((i>>k)&1);
for(k=1;k<=m;k++){
if(a[x[k].f]+'A'==x[k].hf)continue;
if(a[x[k].t]+'A'==x[k].ht){
add(z(x[k].f,x[k].hf),zf(x[k].f,x[k].hf));
continue;
}
add(z(x[k].f,x[k].hf),z(x[k].t,x[k].ht)),add(zf(x[k].t,x[k].ht),zf(x[k].f,x[k].hf));
}
for(k=1;k<=n+n;k++)if(!dfn[k])tarjan(k);
for(k=1;k<=n;k++){
if(be[k]==be[k+n]){
p=false;
break;
}
}
if(!p)continue;
for(k=1;k<=n;k++)cout<<pd(k);
return 0;
}
cout<<-1;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 5
Accepted
time: 1ms
memory: 8540kb
input:
2 0 ba 4 2 C 2 C 1 B 1 A 2 C 1 C 2 B 1 A
output:
AB
result:
ok
Test #2:
score: 5
Accepted
time: 1ms
memory: 10576kb
input:
2 1 xc 4 2 B 2 A 2 A 1 C 2 C 2 C 2 B 1 A
output:
CA
result:
ok
Test #3:
score: 5
Accepted
time: 1ms
memory: 9796kb
input:
5 0 bcbbb 10 1 B 1 C 3 C 1 C 2 B 5 A 1 C 1 C 2 A 5 A 3 A 1 C 2 B 1 C 3 A 1 B 1 B 4 B 1 B 4 A
output:
CACAA
result:
ok
Test #4:
score: 5
Accepted
time: 1ms
memory: 9764kb
input:
5 2 acxax 10 2 B 1 A 3 C 4 C 4 B 3 C 5 B 3 B 2 B 3 A 3 A 2 A 5 B 1 C 3 B 1 B 2 C 4 C 4 B 2 A
output:
BABCC
result:
ok
Test #5:
score: 5
Accepted
time: 1ms
memory: 10144kb
input:
10 0 abbbacabab 20 5 A 3 B 9 A 4 C 4 C 10 A 8 B 3 C 6 C 10 A 5 A 9 C 8 A 2 C 5 A 8 B 10 A 10 A 5 B 4 B 6 C 10 C 2 C 4 B 5 C 7 B 5 A 10 B 3 A 7 B 6 B 4 B 3 C 8 B 1 B 3 B 4 B 3 C 8 A 2 A
output:
CAAACABCBA
result:
ok
Test #6:
score: 5
Accepted
time: 0ms
memory: 10760kb
input:
10 4 xbbxccxbxc 20 2 A 10 A 10 C 4 C 1 A 5 A 2 A 2 A 9 C 2 B 2 B 6 C 2 B 9 A 3 B 2 B 4 B 9 A 4 A 5 A 2 B 10 A 3 B 6 A 8 C 8 B 3 B 3 B 3 B 7 A 9 C 6 C 6 A 8 C 4 A 10 A 2 C 4 B 9 C 7 B
output:
BAACABBABA
result:
ok
Test #7:
score: 5
Accepted
time: 0ms
memory: 9764kb
input:
20 0 cccccccccccccccccccc 40 15 A 13 C 6 B 19 A 3 C 5 B 20 C 6 C 1 C 10 B 10 C 7 C 13 B 17 A 1 A 3 A 15 A 15 A 13 B 18 B 14 A 4 A 1 A 3 A 4 C 14 A 1 B 6 B 2 B 8 B 3 C 15 A 1 B 17 B 6 A 17 A 12 B 6 A 8 B 1 C 15 B 1 B 18 C 3 C 2 A 8 A 14 B 6 B 15 C 9 A 17 A 10 C 15 A 7 A 8 C 6 A 18 B 12 C 14 C 10 A 9 ...
output:
BAABABAAAAAAABBABAAA
result:
ok
Test #8:
score: 5
Accepted
time: 0ms
memory: 10232kb
input:
20 0 caaabacbacabbcacabaa 40 7 B 19 C 15 A 12 B 2 A 12 C 20 B 1 B 4 B 4 A 4 A 18 C 4 A 3 A 15 C 12 A 2 C 12 C 15 B 6 A 10 A 12 B 13 C 7 C 2 C 6 C 16 C 18 A 12 B 17 B 8 C 11 B 14 B 11 A 8 B 8 C 19 A 7 C 6 C 3 C 1 C 4 B 1 C 5 A 13 B 4 C 14 B 9 A 11 A 9 C 8 B 16 B 2 C 20 A 2 A 14 C 10 B 13 A 17 A 19 B ...
output:
BBBCABAABBBAAACABACC
result:
ok
Test #9:
score: 5
Accepted
time: 1ms
memory: 10576kb
input:
20 8 xccccccxxcxcccccxxxx 40 12 A 18 C 16 C 14 C 10 B 2 C 1 A 10 A 11 A 13 B 15 A 6 B 8 A 14 B 16 A 15 B 4 C 5 C 19 C 4 B 17 C 11 A 12 B 14 C 18 B 17 B 14 A 11 C 16 C 6 C 13 C 20 B 16 B 13 C 8 B 7 C 9 B 16 B 1 B 18 A 7 B 6 A 8 B 19 A 16 C 17 A 8 A 6 A 10 A 14 B 20 C 6 B 13 C 5 A 14 A 3 C 20 B 14 C 4...
output:
CAABBBACCAAABBBACCBC
result:
ok
Test #10:
score: 5
Accepted
time: 0ms
memory: 9736kb
input:
20 8 cbabxccxxxxxbaxxaaac 40 8 C 7 C 19 C 12 C 19 A 6 B 6 C 20 B 12 B 18 B 6 A 10 B 11 B 14 B 20 C 18 B 4 A 7 C 18 A 1 A 18 C 14 A 5 B 13 B 3 B 7 A 8 C 1 C 14 B 4 C 13 A 1 A 7 A 19 A 11 B 16 A 9 A 7 A 11 C 4 B 10 B 1 A 1 A 1 B 5 A 8 C 20 C 13 A 3 B 11 B 18 C 13 A 11 A 20 B 3 A 16 C 17 A 5 C 6 C 17 B...
output:
BCCCCBBBBCAACBBBCBBB
result:
ok
Test #11:
score: 5
Accepted
time: 1ms
memory: 10332kb
input:
100 0 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 200 62 A 60 B 22 A 46 A 87 A 67 B 29 A 43 A 64 B 28 B 83 B 16 A 50 A 64 B 48 A 95 A 28 B 90 A 5 A 12 A 23 B 86 A 62 A 81 B 64 B 9 B 5 A 10 B 89 B 18 B 69 B 62 A 63 A 55 A 28 B 92 B 49 A 43 A 71...
output:
ABABBBAAAAABBBBBBABBABABABAABBBBAABBAABBAABBABBBBBABBABABBAAABBABABBAABBAABABBAAAAABBBAAABBAAABBBBBB
result:
ok
Test #12:
score: 5
Accepted
time: 1ms
memory: 9764kb
input:
100 0 cabaabbaaabacbaccbccacbcaaccccbbcccbabbaaaacccbaaabbcaaabaabcaabcbbcaabaabaaccacbaabbacbbacaaabcbbca 200 94 C 31 A 29 B 48 B 89 C 52 A 49 B 11 C 10 C 66 C 90 B 49 B 80 B 19 B 26 B 54 B 20 B 65 B 52 A 80 B 51 A 33 A 94 C 6 C 18 C 60 A 87 B 45 B 12 C 7 A 26 B 57 A 89 C 54 B 4 B 29 B 39 A 67 C 22...
output:
ABACCACCBCCBAABAAAAABBABBCBAAACCBBBCCACBCCBAABCCCBCCBCBBABCCABBCBCABBCABBCBCABBACCCACBAAACABBBABCCBB
result:
ok
Test #13:
score: 5
Accepted
time: 1ms
memory: 10520kb
input:
100 8 cccccxccccccxccccxccccccxcccccccxccccxccccccccccxccccccccccccccccccccccccccccccccccccccxcccccccccccc 200 38 A 13 B 60 A 18 B 36 B 76 B 95 A 7 B 25 A 58 B 53 A 27 A 21 A 78 A 15 A 48 A 52 B 59 A 65 B 68 A 72 A 47 A 95 A 48 A 96 A 67 A 96 A 47 A 46 B 96 A 79 B 36 B 60 A 90 B 5 B 95 A 17 A 99 A 2...
output:
AABBACBBAABACBBABBBABAAABAAABBBACBAAABAABBAABABACBBAAAABBBBBBBAAAAABAAABBAAABBAAAABABBBBBABAAABBAABB
result:
ok
Test #14:
score: 5
Accepted
time: 1ms
memory: 9788kb
input:
100 8 ccbbcaacxxbcxacbcaabxaaccbxcaabacbccaccacbcacxcacccccccbcacbaabbabaacbbababaxabcccacaxabaaacabbcbccc 200 41 A 8 A 75 C 86 C 93 B 26 A 83 C 55 A 49 B 69 B 50 B 54 B 41 A 85 C 43 B 4 A 75 C 95 A 2 A 54 B 14 C 3 A 18 C 79 A 5 B 8 A 61 C 90 B 48 C 96 B 84 A 40 C 55 A 58 B 77 A 47 A 36 A 60 A 2 A 8...
output:
BBCAABBBCBCBBBBAABBCBBCABCBABCCBAAABCAACBCABABACAAAAAABCACACCCCCCCBBACCBABACBBCBBABBBBCCCBCACCCBABBA
result:
ok
Test #15:
score: 5
Accepted
time: 2ms
memory: 10664kb
input:
5000 0 ccbbbbacccabaacccbccaabcbcbabcabbbcbccacbbcccbccbcacbacaacbccaaacbcaabbacacabaaaccacbaccbbbccaabbbcabcbabaaccbaacacbaaccbacaccababcabbbccacbcabaabababaacccbbababbaabbbaccbabaabbbcbacbbbbbacbbabcabacbbcbaaaaaaccbaaaabccccacaaacabaabaccacabbaacaaccbbcbcaaaccbbccbccbccaacbccacbcbbacaaaaabbacbaab...
output:
-1
result:
ok
Test #16:
score: 5
Accepted
time: 1ms
memory: 9828kb
input:
5000 8 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc...
output:
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB...
result:
ok
Test #17:
score: 5
Accepted
time: 2ms
memory: 12164kb
input:
5000 8 abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcab...
output:
BCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCA...
result:
ok
Test #18:
score: 5
Accepted
time: 4ms
memory: 17484kb
input:
50000 0 baabcbbaacbbabababbbabcbcbbcabccaaacccbaaabcabccccbbaacbaaacbcacbabbbbabccabaabbcabacacaaabbaccccbcacaaacbcaacbcacbbabbcbabccbbcacbacbbccacbcabcbcbcacbaacaaccbcbabaaacbcbbccbcacacccbbcabcaccacaaaaaacbcaccaacbbbaaaccaaccaaacbacbaaccaabccaababbabaaaaacbaabaccabacbcbabbcbaabacbbacbbaaabababccac...
output:
ABBAAAABBAAABABABAAABAAAAAAABAAABBBAAAABBBAABAAAAAAABBAABBBAAABAABAAAABAAABABBAAABABABABBBAABAAAAAABABBBAAABBAAABAAABAAAABAAAAAABAABAAAAABAAABAAAAAABAABBABBAAAAABABBBAAAAAAAAABABAAAAAABAABAABABBBBBBAAABAABBAAAABBBAABBAABBBAABAABBAABBAAABBABAABABBBBBAABBABAABABAAAABAAAABBABAAABAAABBBABABAAABABBAABAAA...
result:
ok
Test #19:
score: 5
Accepted
time: 8ms
memory: 17820kb
input:
50000 8 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc...
output:
ABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABAB...
result:
ok
Test #20:
score: 5
Accepted
time: 8ms
memory: 17868kb
input:
50000 8 abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabca...
output:
BCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCA...
result:
ok
Extra Test:
score: 0
Extra Test Passed