QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#115219#5956. Paradox SortPittow32 ✓155ms1744kbC++141019b2023-06-25 09:18:472023-06-25 09:18:50

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-06-25 09:18:50]
  • 评测
  • 测评结果:32
  • 用时:155ms
  • 内存:1744kb
  • [2023-06-25 09:18:47]
  • 提交

answer

#include<cstdio>
int T,n,k,i,j,a[104][104];
bool b[104],v[104];//confirmed,visited
int read(){
	char c;
	while(c=getchar(),c<'0'||c>'9');
	int r=0;
	for(;c>='0'&&c<='9';c=getchar())(r*=10)+=c-'0';
	return r;
}void dfs(int g){
	v[g]=0;
	for(int i=0;i<n;++i)if(v[i]&&a[g][i])dfs(i);
}bool check(int cu,int de){
	if(cu==n||a[de][cu])cu=de;
	b[de]=0;
	for(int i=0;i<n;++i)v[i]=b[i];
	if(b[k])dfs(k);
	b[de]=1;
	if(cu<n)for(int i=0;i<n;++i)if(a[cu][i])v[i]=0;
	for(int i=0;i<n;++i)if(b[i]&&v[i])return 0;
	return 1;
}int main(){
	T=read();
	for(int t=0;t<T;++t){
		n=read();k=read();
		for(i=0;i<n;++i)
		for(j=0;j<n;++j)if(i!=j){
			char c;
			while(c=getchar(),c!='Y'&&c!='N');
			a[i][j]=c=='Y';
		}printf("Case #%d:",t+1);
		for(i=0;i<n;++i)b[i]=1;
		int cur=n;
		if(!check(n,n)){printf(" IMPOSSIBLE");goto end;}
		for(i=0;i<n;++i){
			for(j=0;j<n;++j)
				if(b[j]&&check(cur,j))goto aha;
			aha:b[j]=0;printf(" %d",j);
			if(i==0||a[j][cur])cur=j;
		}end:puts("");
	}return 0;
}

詳細信息

Subtask #1:

score: 4
Accepted

Test #1:

score: 4
Accepted
time: 1ms
memory: 1476kb

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 3 1 2 0
Case...

result:

ok 100 lines

Subtask #2:

score: 28
Accepted

Test #2:

score: 28
Accepted
time: 155ms
memory: 1744kb

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 9...

result:

ok 100 lines

Extra Test:

score: 0
Extra Test Passed