QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#440411 | #5956. Paradox Sort | as_lyr | 32 ✓ | 55ms | 3952kb | C++14 | 1.3kb | 2024-06-13 18:03:42 | 2024-06-13 18:03:42 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N=110;
int n,st;
bool o[N][N];
vector <int> e[N];
bool vis[N],ver[N];
void dfs(int x){
vis[x]=1;
for(int i=0;i<(int)e[x].size();i++){
int y=e[x][i];
if(vis[y]||ver[y])
continue;
dfs(y);
}
}
inline bool check(int x){
for(int i=1;i<=n;i++)
vis[i]=0;
if(ver[st]==0)
dfs(st);
for(int i=1;i<=n;i++)
if(ver[i]==0&&vis[i]==0&&o[x][i]==0)
return 0;
return 1;
}
void solve(int id){
printf("Case #%d: ",id);
scanf("%d%d",&n,&st);
st++;
for(int i=1;i<=n;i++)
e[i].clear();
memset(o,0,sizeof(o));
memset(ver,0,sizeof(ver));
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
char op;
cin>>op;
if(op=='Y'){
e[i].push_back(j);
o[i][j]=1;
}
}
for(int i=1;i<=n;i++)
vis[i]=0;
dfs(st);
for(int i=1;i<=n;i++)
if(vis[i]==0){
puts("IMPOSSIBLE");
return ;
}
int pre=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(ver[j])
continue;
if(ver[st]&&o[st][j]==0)
continue;
ver[j]=1;
if(check(o[pre][j]?pre:j)){
printf("%d ",j-1);
pre=o[pre][j]?pre:j;
break;
}
else
ver[j]=0;
}
}
puts("");
}
int main(){
int T;
scanf("%d",&T);
for(int i=1;i<=T;i++)
solve(i);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 4
Accepted
Test #1:
score: 4
Accepted
time: 1ms
memory: 3764kb
input:
100 3 0 -YN N-Y YN- 2 0 -Y N- 5 0 -YNNN N-YNN YN-YN YYN-Y YYYN- 5 1 -NYYY Y-NNN NY-NY NYY-N NYNY- 6 5 -YYNNY N-YYNY NN-NYN YNY-NY YYNY-Y NNYNN- 4 0 -YYY N-YN NN-N NYY- 2 0 -Y N- 5 1 -NYNY Y-YYY NN-YY YNN-N NNNY- 7 5 -YYYYYY N-NNYYN NY-YNNN NYN-NYN NNYY-NN NNYNY-N NYYYYY- 8 0 -YNNNNNN N-YNNNNN YN-YNN...
output:
Case #1: 1 2 0 Case #2: 0 1 Case #3: 3 4 2 1 0 Case #4: 0 2 3 4 1 Case #5: 0 1 3 4 2 5 Case #6: 0 1 2 3 Case #7: 0 1 Case #8: 0 1 2 3 4 Case #9: IMPOSSIBLE Case #10: 6 7 5 4 3 2 1 0 Case #11: 0 1 2 Case #12: 0 1 Case #13: 0 1 Case #14: IMPOSSIBLE Case #15: IMPOSSIBLE Case #16: 7 8 6 5 4 ...
result:
ok 100 lines
Subtask #2:
score: 28
Accepted
Test #2:
score: 28
Accepted
time: 55ms
memory: 3952kb
input:
100 39 0 -YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN N-YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN YN-YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN YYN-YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN YYYN-YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN YYYYN-YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN YYYYYN-YNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN YYYYYYN-YNN...
output:
Case #1: 37 38 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 Case #2: 0 13 23 28 30 34 38 40 41 42 43 46 49 51 52 33 5 1 17 32 15 29 19 10 16 47 48 9 4 27 6 7 18 31 8 11 26 50 3 37 25 35 45 20 24 39 22 12 44 36 2 21 14 Case #3: 0 1 2 3 4 5 6 8...
result:
ok 100 lines
Extra Test:
score: 0
Extra Test Passed