QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#21872#2833. HamiltonJackyqwq#AC ✓19ms7604kbC++141.9kb2022-03-08 17:08:532022-05-08 04:11:22

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-05-08 04:11:22]
  • 评测
  • 测评结果:AC
  • 用时:19ms
  • 内存:7604kb
  • [2022-03-08 17:08:53]
  • 提交

answer

#include <bits/stdc++.h>
//#define int long long
#define ll long long
#define db double
#define fi first
#define se second
#define pii pair<int,int>
#define vi vector<int>

using namespace std;

const int maxn=2e3; 
int n;
int nxt[maxn+5],pre[maxn+5],p[maxn+5],cnt; 
char s[maxn+5][maxn+5]; 
int check(int x,int y,int z,int w) {
	int num=(s[x][y]!=s[y][z])+(s[y][z]!=s[z][w]);
	return num<=1; 
}
int get(int x){
	int y=x%n+1;
	return s[p[x]][p[y]]-'0'; 
}
int CHECK() {
	int num=0; 
	for (int i=1;i<n;i++) {
		if (get(i)!=get(i+1)) num++; 
	}
	return num<=1; 
}
int main() {
	//freopen("in.txt","r",stdin);
	//freopen("out.txt","w",stdout); 
	while (cin>>n) {
		for (int i=1;i<=n;i++) {
			scanf("%s",s[i]+1); 
			pre[i]=nxt[i]=0; 
		}
		int fir=1,lst=2; 
		nxt[1]=2,pre[2]=1;
		pre[1]=0;nxt[2]=0; 
		for (int i=3;i<=n;i++) {
			if (s[i][fir]=='0') {
				pre[fir]=i; nxt[i]=fir; fir=i; 
			}
			else if (s[i][lst]=='1') {
				nxt[lst]=i; pre[i]=lst; lst=i; 
			}
			else {
				int u=fir,x,y,z; 
				int flag=0; 
				while (u!=0) {
					int nx=nxt[u],nxx=nxt[nx];
					if (nxx){
						if (s[u][nx]!=s[nx][nxx]) {
							flag=1; 
							x=u,y=nx,z=nxx; 
							break ; 
						}
					}
					u=nxt[u];
				}
				if (flag==0) {
					if (s[fir][nxt[fir]]=='0') {
						nxt[lst]=i; pre[i]=lst; lst=i; 
					}
					else {
						pre[fir]=i; nxt[i]=fir; fir=i; 
					}
				}
				else {
					if (check(x,i,y,z)) {
						nxt[x]=i;
						pre[y]=i;
						nxt[i]=y;
						pre[i]=x; 
					}
					else {
						nxt[y]=i;
						pre[z]=i;
						nxt[i]=z;
						pre[i]=y; 
					}
				}
			}
		}
		if (s[lst][fir]=='0') {
			nxt[lst]=fir; 
			fir=lst; 
		}
		int u=fir;
		cnt=0; 
		for (int i=1;i<=n;i++) {
	//		p[++cnt]=u; 
			cout<<u<<' '; 
			u=nxt[u]; 
		}
		cout<<'\n'; 
	//	cerr<<CHECK()<<'\n'; 
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 3736kb

input:

3
001
000
100
4
0000
0000
0000
0000

output:

1 2 3 
2 4 3 1 

result:

ok 2 cases.

Test #2:

score: 0
Accepted
time: 2ms
memory: 3532kb

input:

3
000
000
000
3
010
100
000
3
011
100
100
3
011
101
110

output:

2 3 1 
2 3 1 
2 3 1 
1 2 3 

result:

ok 4 cases.

Test #3:

score: 0
Accepted
time: 3ms
memory: 3656kb

input:

4
0000
0000
0000
0000
4
0000
0001
0000
0100
4
0100
1010
0100
0000
4
0111
1000
1000
1000
4
0010
0011
1101
0110
4
0111
1011
1100
1100
4
0111
1011
1101
1110
4
0000
0011
0101
0110
4
0101
1010
0100
1000
4
0011
0011
1100
1100
4
0010
0001
1000
0100

output:

2 4 3 1 
4 3 1 2 
2 4 3 1 
2 4 3 1 
4 1 2 3 
3 4 1 2 
1 2 3 4 
3 1 2 4 
2 4 3 1 
1 4 2 3 
3 4 1 2 

result:

ok 11 cases.

Test #4:

score: 0
Accepted
time: 3ms
memory: 3744kb

input:

5
00000
00000
00000
00000
00000
5
00001
00000
00000
00000
10000
5
00010
00010
00000
11000
00000
5
00000
00001
00001
00001
01110
5
00001
00001
00001
00001
11110
5
00101
00100
11011
00100
10100
5
01111
10011
10000
11000
11000
5
00011
00011
00011
11101
11110
5
01101
10111
11001
01001
11110
5
00111
0011...

output:

2 5 4 3 1 
2 5 4 3 1 
2 5 4 3 1 
4 3 1 2 5 
4 3 1 2 5 
5 4 1 2 3 
5 4 3 1 2 
3 1 2 4 5 
4 1 2 3 5 
1 2 3 4 5 
1 2 3 4 5 
4 3 1 2 5 
4 3 1 2 5 
3 1 2 4 5 
5 4 3 1 2 
3 1 2 4 5 
4 5 1 2 3 
5 4 1 2 3 
1 2 5 3 4 
1 2 3 4 5 
5 3 1 2 4 
3 1 2 5 4 
4 5 1 2 3 
5 4 1 2 3 
5 3 4 1 2 
4 3 5 1 2 
4 3 1 2 5 
5 4...

result:

ok 34 cases.

Test #5:

score: 0
Accepted
time: 0ms
memory: 3756kb

input:

6
000000
000000
000000
000000
000000
000000
6
000000
000000
000001
000000
000000
001000
6
010000
100100
000000
010000
000000
000000
6
000100
000000
000100
101010
000100
000000
6
000100
000000
000100
101011
000100
000100
6
001000
001000
110111
001000
001000
001000
6
001100
000100
100100
111011
000100...

output:

2 6 5 4 3 1 
2 6 5 4 3 1 
2 6 5 4 3 1 
4 6 5 3 1 2 
6 5 3 1 2 4 
6 5 4 1 2 3 
6 5 1 2 3 4 
3 1 6 2 4 5 
6 5 4 1 2 3 
6 4 1 2 3 5 
6 4 1 2 3 5 
3 1 2 4 5 6 
5 4 1 2 3 6 
5 6 1 2 3 4 
1 2 3 4 5 6 
1 2 3 4 5 6 
3 1 2 4 5 6 
4 5 6 1 2 3 
1 2 3 4 5 6 
3 6 5 4 1 2 
4 6 5 1 2 3 
5 4 1 2 3 6 
5 4 1 2 3 6 
6...

result:

ok 156 cases.

Test #6:

score: 0
Accepted
time: 11ms
memory: 3748kb

input:

7
0000010
0001011
0001010
0110100
0001001
1110001
0100110
7
0101001
1011000
0101100
1110010
0010010
0001100
1000000
7
0001111
0011001
0100100
1100101
1011000
1000000
1101000
7
0111111
1011101
1101001
1110010
1100010
1001101
1110010
7
0010111
0010001
1101010
0010000
1000011
1010100
1100100
7
0001010
...

output:

4 6 5 3 1 7 2 
4 7 6 3 1 5 2 
5 7 6 4 3 1 2 
7 5 1 2 3 4 6 
5 4 1 7 2 3 6 
5 7 3 1 6 2 4 
6 5 3 1 2 4 7 
2 7 6 5 4 3 1 
4 7 6 5 1 2 3 
6 5 3 1 2 4 7 
7 6 3 1 2 4 5 
4 3 1 2 5 6 7 
3 7 6 5 4 1 2 
6 7 1 2 3 4 5 
2 7 6 5 4 3 1 
3 7 6 5 4 1 2 
6 7 5 3 4 1 2 
6 5 3 1 2 4 7 
6 1 5 2 3 4 7 
7 6 5 3 4 1 2 
...

result:

ok 286 cases.

Test #7:

score: 0
Accepted
time: 1ms
memory: 3760kb

input:

5
01000
10100
01010
00100
00000
9
001101110
001010001
110100110
101010000
010100011
100000000
101000000
101010001
010010010
4
0000
0011
0101
0110
8
00100101
00101100
11000011
00001111
01010101
11011000
00110000
10111000
9
000000001
001101000
010000100
010000111
000000000
010000111
001101010
00010110...

output:

2 5 3 1 4 
4 8 7 6 5 1 9 2 3 
3 1 2 4 
4 8 1 6 5 2 3 7 
6 5 4 3 1 2 7 8 9 
1 4 2 3 
5 6 1 2 3 4 
5 3 1 4 2 6 
6 5 4 1 2 3 7 
5 1 6 4 2 3 7 
8 10 6 9 3 5 1 2 4 7 
10 8 6 5 1 2 3 7 4 9 
4 5 1 2 3 6 
7 8 6 5 1 2 3 4 
6 1 2 9 8 3 4 5 7 
1 2 3 
1 2 3 
2 6 5 4 3 1 
7 6 5 4 3 1 2 
2 3 1 
1 2 3 
4 3 1 2 5 
...

result:

ok 322 cases.

Test #8:

score: 0
Accepted
time: 9ms
memory: 3668kb

input:

10
0010001000
0010011001
1101101001
0010111000
0011000110
0101001100
1111010001
0000110011
0000100101
0110001110
10
0000000010
0000001001
0000001101
0000100000
0001010111
0000101011
0110010100
0010101000
1000110000
0110110000
10
0110010111
1011111110
1100101010
0100001101
0110001111
1100001010
01111...

output:

8 4 1 7 6 2 3 5 9 10 
7 10 9 8 6 4 3 1 2 5 
7 9 8 6 5 4 10 1 2 3 
10 9 8 4 3 1 7 2 5 6 
8 6 5 4 1 10 2 3 7 9 
8 10 9 5 4 3 1 2 6 7 
10 9 8 7 6 5 4 3 1 2 
10 8 7 6 4 3 1 2 5 9 
9 8 7 5 4 3 1 10 2 6 
7 6 4 3 8 9 1 2 5 10 
8 7 5 4 10 3 1 2 6 9 
8 10 7 5 1 2 3 4 9 6 
9 10 8 7 4 1 2 3 5 6 
10 9 7 3 1 4 2...

result:

ok 200 cases.

Test #9:

score: 0
Accepted
time: 0ms
memory: 3820kb

input:

10
0110101100
1010100111
1101100101
0010111010
1111001010
0001000000
1001100111
1110001001
0101101000
0110001100
10
0111110111
1001111100
1001100100
1110101111
1111001010
1100001000
0101110100
1111001010
1001100100
1001000000
10
0100000111
1011111001
0100001111
0100100110
0101011100
0100100110
01101...

output:

10 9 8 4 1 6 2 3 5 7 
7 10 8 6 9 3 1 2 4 5 
10 9 7 6 4 3 1 2 5 8 
7 9 6 5 8 10 4 1 2 3 
3 9 6 5 7 8 10 1 4 2 
8 10 9 5 3 6 1 2 4 7 
5 9 8 7 6 4 10 1 2 3 
7 6 3 1 5 8 9 2 4 10 
3 10 9 8 7 6 5 4 1 2 
6 4 3 5 1 8 2 7 9 10 
10 7 6 3 1 4 8 2 5 9 
10 9 8 7 6 5 4 1 2 3 
5 8 6 10 4 9 7 3 1 2 
9 10 8 7 4 1 2...

result:

ok 200 cases.

Test #10:

score: 0
Accepted
time: 6ms
memory: 5652kb

input:

20
00011111000111100010
00100111111000000010
01011011101000100111
10100010000100000010
10100100000010101101
11001001010010000111
11110000010000111001
11100100111000010101
01100001011101100010
01000111100111011001
01100001100111111111
10010000111001010000
10001100011001001000
10000000111110111010
101...

output:

20 19 18 15 13 12 8 7 6 3 1 2 4 5 11 9 10 14 16 17 
14 10 6 5 4 1 2 7 9 12 19 15 13 3 8 11 16 17 18 
18 15 14 12 11 8 7 19 22 4 16 3 13 5 1 2 6 9 10 17 20 21 
12 9 4 1 2 3 5 6 13 11 7 8 10 
29 30 22 19 18 16 15 14 12 11 8 24 28 7 23 6 21 3 20 1 9 2 4 5 10 13 17 25 26 27 
21 14 12 11 9 8 7 6 5 3 10 1...

result:

ok 72 cases.

Test #11:

score: 0
Accepted
time: 5ms
memory: 3920kb

input:

59
01110100011001000100111000110110010001011111001011011101100
10001011111001111100111111100010111011100101001100001000101
10000011101010011100111011000001101110001100001110110101001
10001100100110101001000000101101101110001110111001110001101
010101010101101111110011111000100101111111101001111100111...

output:

59 58 56 55 54 53 52 51 49 48 47 46 45 44 43 41 40 39 37 36 34 33 32 30 29 28 26 24 23 22 20 19 18 15 13 11 10 7 4 14 17 21 31 50 57 12 8 3 1 2 5 6 9 16 25 27 35 38 42 
62 63 61 59 58 57 56 53 51 49 47 46 44 43 42 39 38 36 35 34 33 32 31 30 29 27 25 23 22 21 17 12 11 10 9 4 3 24 28 37 7 45 20 50 52 ...

result:

ok 29 cases.

Test #12:

score: 0
Accepted
time: 3ms
memory: 3992kb

input:

160
0010110100011110110110110001100110111000000100001100110101001011100101011100011100111011011011010011010110101100000011111010110111001011001100010000101111001101
000011011110000111010100011011010001001101001100111010101101001011001101001001000001011010001101100111011110110101111010101100000101001...

output:

160 158 156 155 154 153 152 150 149 147 146 144 143 140 139 138 136 135 132 129 126 125 123 122 120 119 114 113 112 110 108 107 106 104 102 100 99 95 94 93 91 87 82 80 78 73 72 71 67 66 64 63 60 58 56 54 53 52 50 49 48 46 43 41 40 39 37 34 33 32 30 28 27 18 17 16 15 13 12 11 10 8 5 4 1 2 19 25 22 29...

result:

ok 14 cases.

Test #13:

score: 0
Accepted
time: 9ms
memory: 4504kb

input:

438
01000100111101110010100101010001000101100011101011001001011110011100000110001001100101100101110011110111001101001101100111110010011001000110100110101001001101110001110011101010100010110100001011110011001000000001111111011001001010011101110010110111011111100011111101101001101010101010110000000111...

output:

433 438 436 431 429 427 426 423 422 421 420 418 417 415 413 410 409 408 407 403 401 400 399 398 392 391 389 388 386 383 381 377 373 368 367 365 360 359 355 354 353 352 349 348 347 340 338 336 335 333 329 328 326 324 322 321 318 314 313 311 310 309 308 306 305 304 302 301 298 296 294 293 286 283 278 ...

result:

ok 7 cases.

Test #14:

score: 0
Accepted
time: 17ms
memory: 6148kb

input:

1227
0100010000101001111110111010100100001100101111001011101010010000100111110110000001101101000101010011000101100110010011010100010011111000101101011001010111010010101001100100011000100000101011011011110101010011011110111101110010100010101111010101011001100001000110011101101010010011110010011011100...

output:

1226 1227 1225 1222 1221 1219 1218 1215 1213 1212 1210 1209 1208 1207 1206 1205 1204 1202 1200 1198 1197 1196 1195 1194 1193 1192 1186 1183 1182 1179 1178 1177 1174 1172 1168 1167 1164 1163 1162 1160 1159 1158 1157 1155 1151 1150 1149 1147 1146 1145 1144 1143 1137 1136 1132 1130 1129 1126 1125 1123 ...

result:

ok 2 cases.

Test #15:

score: 0
Accepted
time: 0ms
memory: 5908kb

input:

1078
0111011100111011000000110100010011001100100101011100111000110001110111110010111010110111010110001010100111101001110111010010000001000100110000000010000010111010101000000110101011011011000001100000011111010001010001101111011110111110000110111111111111101100110100011001110110111011111001110010110...

output:

1076 1075 1070 1069 1065 1064 1063 1062 1060 1059 1051 1050 1049 1046 1043 1036 1034 1032 1030 1027 1026 1023 1019 1015 1013 1012 1011 1010 1008 1005 1003 1002 998 996 993 992 990 985 984 982 981 980 979 972 968 962 961 958 957 951 950 949 945 944 943 940 939 938 937 936 935 933 932 929 924 923 922 ...

result:

ok 2 cases.

Test #16:

score: 0
Accepted
time: 11ms
memory: 6928kb

input:

1310
0110101010101111001001001110010101000100000000011001001110111010011000110110010000001110111100110100110110110000011001000101100100000011011111011100010001101111001100100000011100111111101101001011000101000011100101111011100101011111000100101110011110001101110110100111101101011000000000101000101...

output:

1310 1307 1306 1298 1294 1290 1286 1285 1284 1283 1280 1273 1270 1269 1268 1267 1266 1257 1256 1254 1253 1252 1251 1250 1247 1245 1243 1242 1236 1235 1234 1230 1229 1226 1222 1218 1215 1214 1211 1208 1206 1205 1202 1200 1196 1194 1193 1192 1191 1187 1186 1185 1184 1183 1181 1178 1175 1174 1171 1170 ...

result:

ok 2 cases.

Test #17:

score: 0
Accepted
time: 10ms
memory: 7476kb

input:

1542
0000100001001001100011001101100001110111010111001110111110011011001000110010001111000000100011101001000100000001111001110100110101101111000011100010000100000111010001010110101110000001000001110100101111100001110010111000111001010111011100100100111011010101001100100101110110011000001011001000011...

output:

1540 1539 1538 1535 1534 1533 1532 1531 1530 1529 1528 1527 1526 1524 1522 1521 1519 1518 1517 1516 1510 1506 1503 1502 1500 1497 1495 1493 1492 1491 1490 1487 1486 1483 1482 1481 1479 1476 1473 1468 1467 1466 1465 1452 1451 1450 1449 1447 1445 1443 1441 1439 1437 1436 1435 1433 1430 1429 1426 1415 ...

result:

ok 2 cases.

Test #18:

score: 0
Accepted
time: 13ms
memory: 7604kb

input:

2000
0101010000001001011001110100110110001010001110110101101100010010011100000111001100000000110111011111100001110001111011101101110010100100001001110010001111011110011011010000100001011100000000110011000110010100101010110100001010101001111101011001110011010001100110000110101110000001000101001101010...

output:

1996 1997 1995 1991 1987 1983 1981 1980 1979 1978 1973 1971 1969 1966 1964 1963 1961 1958 1957 1956 1955 1954 1952 1951 1945 1944 1941 1940 1937 1934 1933 1930 1928 1927 1925 1919 1918 1916 1915 1913 1912 1910 1907 1906 1904 1903 1901 1900 1899 1898 1897 1896 1890 1886 1885 1883 1881 1880 1878 1877 ...

result:

ok 1 cases.

Test #19:

score: 0
Accepted
time: 17ms
memory: 7572kb

input:

2000
0100001100010101000111011110110000001010100001111010011110111010011101000001100111011101101100000100100011001100011101011110101011101000010000000001010110001100011111100011010110101010001100011100011100000111011011100010110010100001111101011001010111111101011100111011110001101000111100110101000...

output:

1998 1996 1993 1992 1989 1986 1985 1982 1981 1980 1979 1975 1974 1973 1971 1970 1969 1966 1963 1960 1959 1958 1956 1954 1953 1949 1947 1944 1942 1941 1940 1939 1938 1937 1935 1934 1933 1932 1931 1930 1924 1921 1917 1914 1913 1909 1908 1907 1904 1903 1902 1901 1896 1894 1893 1890 1888 1884 1882 1880 ...

result:

ok 1 cases.

Test #20:

score: 0
Accepted
time: 14ms
memory: 7592kb

input:

2000
0110101010100011101110010101000111001011110000101111001110111111100111000101010001110111000110110001010000010101101001011001111111011111111111011111000011100001111110000101100100000110100100100110110010000101101101100100001101100010011100000011110000100100011110111001101001101100110111011101011...

output:

1995 1994 1992 1991 1990 1989 1985 1984 1983 1982 1981 1980 1979 1978 1977 1975 1973 1969 1966 1959 1956 1955 1952 1950 1948 1945 1940 1939 1937 1936 1935 1934 1931 1930 1927 1924 1923 1922 1920 1918 1915 1910 1905 1900 1899 1896 1893 1892 1889 1887 1886 1882 1881 1872 1870 1869 1867 1863 1862 1858 ...

result:

ok 1 cases.

Test #21:

score: 0
Accepted
time: 19ms
memory: 7592kb

input:

2000
0110000110000000010000010011101111110001110101010000000001101110101010101001111001010100100101001100010100101000110001000101000101010011011000000100011110100001000010000111100110111010110001000100011100100011111001011011111011111001101101111011111011111010011100001111010001011101110000000001011...

output:

1993 2000 1999 1998 1996 1992 1990 1988 1986 1983 1982 1981 1980 1979 1977 1975 1973 1969 1967 1965 1962 1961 1960 1959 1958 1957 1956 1955 1953 1951 1949 1948 1947 1946 1945 1944 1943 1942 1940 1938 1937 1936 1935 1930 1924 1922 1921 1917 1916 1915 1912 1905 1903 1899 1898 1897 1894 1893 1891 1890 ...

result:

ok 1 cases.

Test #22:

score: 0
Accepted
time: 19ms
memory: 7456kb

input:

2000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

2 2000 1999 1998 1997 1996 1995 1994 1993 1992 1991 1990 1989 1988 1987 1986 1985 1984 1983 1982 1981 1980 1979 1978 1977 1976 1975 1974 1973 1972 1971 1970 1969 1968 1967 1966 1965 1964 1963 1962 1961 1960 1959 1958 1957 1956 1955 1954 1953 1952 1951 1950 1949 1948 1947 1946 1945 1944 1943 1942 194...

result:

ok 1 cases.

Test #23:

score: 0
Accepted
time: 18ms
memory: 7452kb

input:

2000
0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...

output:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 ...

result:

ok 1 cases.