QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#373683 | #2833. Hamilton | PetroTarnavskyi | AC ✓ | 20ms | 8188kb | C++20 | 1.7kb | 2024-04-01 22:21:09 | 2024-04-01 22:21:11 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define RFOR(i, b, a) for(int i = (b) - 1; i >= (a); i--)
#define SZ(a) (int)a.size()
#define ALL(a) a.begin(), a.end()
#define PB push_back
#define MP make_pair
#define F first
#define S second
typedef long long LL;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef double db;
int n;
vector<string> g;
bool ok(const VI& a)
{
int mx = 0;
FOR(i, 0, SZ(a))
{
int cur = a[i];
int nx = a[(i + 1) % SZ(a)];
int val = g[cur][nx] - '0';
//cerr << val << "\n";
if(val < mx)
return 0;
mx = max(mx, val);
}
return 1;
}
void solve()
{
g.resize(n);
FOR(i, 0, n)
cin >> g[i];
VI ans = {0, 1, 2};
if(!ok(ans))
ans = {1, 2, 0};
if(!ok(ans))
ans = {2, 0, 1};
assert(ok(ans));
//FOR(i, 0, 3)
// cerr << ans[i] << " ";
//cerr << "\n";
FOR(i, 3, n)
{
VI cands = {0, i};
FOR(j, 0, i)
{
int pr = ans[(j + i - 1) % i];
int cur = ans[j];
int nx = ans[(j + 1) % i];
if(g[cur][pr] == g[cur][nx])
continue;
cands.PB(j);
cands.PB(j + 1);
}
bool find = 0;
for(int pos : cands)
{
if(find)
break;
VI nans = ans;
nans.insert(nans.begin() + pos, i);
FOR(t, 0, 2)
{
if(ok(nans))
{
ans = nans;
find = 1;
break;
}
int v = nans.back();
nans.pop_back();
nans.insert(nans.begin(), v);
}
}
assert(SZ(ans) == i + 1);
}
FOR(i, 0, n)
{
if(i)
cout << " ";
cout << ans[i] + 1;
}
cout << "\n";
//cerr << "\n";
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
while(cin >> n)
solve();
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3632kb
input:
3 001 000 100 4 0000 0000 0000 0000
output:
1 2 3 4 1 2 3
result:
ok 2 cases.
Test #2:
score: 0
Accepted
time: 0ms
memory: 3548kb
input:
3 000 000 000 3 010 100 000 3 011 100 100 3 011 101 110
output:
1 2 3 2 3 1 2 3 1 1 2 3
result:
ok 4 cases.
Test #3:
score: 0
Accepted
time: 1ms
memory: 3764kb
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:
4 1 2 3 4 1 2 3 2 4 3 1 4 2 3 1 4 1 2 3 3 4 1 2 4 1 2 3 3 1 2 4 2 4 3 1 1 4 2 3 4 1 2 3
result:
ok 11 cases.
Test #4:
score: 0
Accepted
time: 0ms
memory: 3764kb
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:
5 4 1 2 3 5 4 1 2 3 5 1 2 3 4 4 1 2 3 5 4 1 2 3 5 5 4 1 2 3 2 3 5 1 4 1 2 3 4 5 3 4 1 2 5 1 2 3 4 5 5 4 1 2 3 2 3 1 4 5 2 3 4 1 5 2 3 1 4 5 5 4 2 3 1 3 1 2 4 5 3 5 4 1 2 3 4 1 2 5 1 2 5 3 4 1 2 3 4 5 1 2 3 4 5 3 1 2 5 4 4 5 1 2 3 5 4 1 2 3 4 2 3 1 5 4 3 5 1 2 4 1 2 3 5 5 4 1 2 3 5 1 2 3 4 5 4 1 2 3 ...
result:
ok 34 cases.
Test #5:
score: 0
Accepted
time: 1ms
memory: 3536kb
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:
6 5 4 1 2 3 6 5 4 1 2 3 6 5 2 3 1 4 4 6 5 1 2 3 6 5 1 2 3 4 6 5 4 1 2 3 6 5 1 2 3 4 6 5 1 2 3 4 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 3 6 5 4 1 2 6 5 4 1 2 3 6 5 4 1 2 3 3 1 2 4 5 6 5 4 1 2 3 6 1 2 3 4 5 6 5 6 3 4 1 2 3 6 5 4 1 2 3 4 1 2 5 6 5 4 1 2 3 6 6 3 1 2 4 5 3 4 1 2 5 6 ...
result:
ok 156 cases.
Test #6:
score: 0
Accepted
time: 1ms
memory: 3796kb
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:
6 4 1 2 3 5 7 4 7 6 3 1 5 2 7 6 4 3 1 2 5 2 6 3 5 4 1 7 7 3 5 4 1 2 6 5 7 3 1 6 2 4 6 5 3 1 2 4 7 7 6 5 4 3 1 2 7 6 4 5 1 2 3 1 2 5 6 3 4 7 7 6 3 1 2 4 5 6 2 4 3 1 7 5 7 6 5 3 4 1 2 7 1 2 3 4 5 6 4 2 7 3 1 5 6 5 7 3 6 4 1 2 5 4 2 3 1 6 7 6 5 7 2 4 3 1 6 1 5 2 3 4 7 7 6 5 4 2 3 1 7 6 5 1 2 3 4 6 5 4 ...
result:
ok 286 cases.
Test #7:
score: 0
Accepted
time: 1ms
memory: 3572kb
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:
5 3 1 4 2 8 7 4 6 5 1 9 2 3 3 1 2 4 8 6 7 5 3 4 1 2 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 7 2 5 3 4 1 6 5 1 6 4 2 3 7 8 10 4 6 9 3 5 1 2 7 7 4 6 5 1 2 3 8 9 10 2 6 5 3 4 1 7 8 4 6 5 1 2 3 9 7 8 5 6 1 2 3 4 1 2 3 1 2 3 6 5 4 2 3 1 2 5 4 3 1 6 7 2 3 1 1 2 3 4 2 5 3 1 6 2 5 3 4 1 8 6 7 5 1 ...
result:
ok 322 cases.
Test #8:
score: 0
Accepted
time: 1ms
memory: 3848kb
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 10 9 8 6 4 1 2 3 5 7 5 6 3 4 9 10 8 1 2 7 10 9 5 8 6 7 1 2 3 4 10 9 3 4 1 2 5 6 7 8 10 8 9 5 4 2 3 1 6 7 10 9 8 6 7 1 5 4 2 3 10 8 7 6 4 3 1 2 5 9 9 8 6 7 5 4 3 1 2 10 10 8 9 2 4 3 1 6 5 7 9 10 6 1 5 4 2 3 8 7 8 10 7 5 1 2 3 4 9 6 9 10 8 6 7 4 1 2 3 5 10 9 7 3 1 4 2 5 6 8 10 8 6...
result:
ok 200 cases.
Test #9:
score: 0
Accepted
time: 1ms
memory: 3556kb
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 8 10 9 2 3 6 1 4 5 7 8 9 7 6 4 3 10 1 2 5 9 6 5 3 4 7 10 1 2 8 2 7 3 6 5 9 1 10 4 8 8 10 9 5 3 6 1 2 4 7 2 9 8 7 10 6 3 5 4 1 6 8 5 2 3 1 7 4 9 10 4 10 9 1 8 2 7 5 3 6 10 8 7 5 1 4 2 3 6 9 10 7 6 3 1 4 8 2 5 9 1 10 9 2 8 7 3 4 6 5 9 5 8 6 2 7 3 1 4 10 9 10 8 7 4 1 2 6 3 5 6 5 4 ...
result:
ok 200 cases.
Test #10:
score: 0
Accepted
time: 1ms
memory: 3860kb
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 19 17 2 16 15 11 14 10 9 8 7 3 6 5 4 1 13 12 18 20 19 16 9 12 10 11 8 7 6 5 2 3 4 1 13 15 22 14 17 18 21 12 9 4 1 2 3 5 6 13 11 7 8 10 30 29 24 25 18 20 12 16 13 15 10 11 8 7 4 1 2 3 6 5 17 14 19 27 9 26 21 22 23 28 20 21 14 12 11 9 8 7 6 5 2 3 1 4 ...
result:
ok 72 cases.
Test #11:
score: 0
Accepted
time: 2ms
memory: 3628kb
input:
59 01110100011001000100111000110110010001011111001011011101100 10001011111001111100111111100010111011100101001100001000101 10000011101010011100111011000001101110001100001110110101001 10001100100110101001000000101101101110001110111001110001101 010101010101101111110011111000100101111111101001111100111...
output:
59 56 58 57 30 54 53 50 51 49 45 47 35 43 42 36 41 38 40 33 34 31 27 29 28 26 24 23 22 20 19 18 15 13 11 10 9 8 6 7 4 2 3 5 1 12 14 16 17 21 32 46 48 52 55 39 44 37 25 52 60 37 59 58 40 57 54 56 53 51 50 48 49 47 46 45 41 44 43 42 39 38 36 35 34 33 32 31 30 4 29 27 26 13 25 19 24 21 22 18 14 17 12 1...
result:
ok 29 cases.
Test #12:
score: 0
Accepted
time: 2ms
memory: 3908kb
input:
160 0010110100011110110110110001100110111000000100001100110101001011100101011100011100111011011011010011010110101100000011111010110111001011001100010000101111001101 000011011110000111010100011011010001001101001100111010101101001011001101001001000001011010001101100111011110110101111010101100000101001...
output:
160 158 156 141 150 149 147 145 146 144 143 140 139 98 138 135 136 128 134 130 132 129 121 125 124 122 123 119 120 118 117 84 116 96 115 111 113 112 110 108 101 107 106 104 102 97 100 99 95 94 93 90 91 88 89 85 87 86 83 81 79 80 78 73 72 71 67 66 64 62 63 60 44 59 50 58 56 51 54 52 53 47 49 48 46 45...
result:
ok 14 cases.
Test #13:
score: 0
Accepted
time: 0ms
memory: 3836kb
input:
438 01000100111101110010100101010001000101100011101011001001011110011100000110001001100101100101110011110111001101001101100111110010011001000110100110101001001101110001110011101010100010110100001011110011001000000001111111011001001010011101110010110111011111100011111101101001101010101010110000000111...
output:
434 435 432 433 428 429 426 427 425 380 424 384 423 419 420 393 418 412 415 413 410 409 408 405 397 404 401 403 402 398 399 395 394 391 392 385 389 388 386 383 382 378 379 374 375 370 369 347 367 361 366 363 365 362 350 359 355 354 353 352 349 344 341 343 339 340 321 338 336 335 333 330 331 324 329 ...
result:
ok 7 cases.
Test #14:
score: 0
Accepted
time: 3ms
memory: 5444kb
input:
1227 0100010000101001111110111010100100001100101111001011101010010000100111110110000001101101000101010011000101100110010011010100010011111000101101011001010111010010101001100100011000100000101011011011110101010011011110111101110010100010101111010101011001100001000110011101101010010011110010011011100...
output:
1226 1227 1225 1222 1221 1192 1219 1218 1216 1217 1214 1215 1197 1213 1199 1211 1206 1210 1209 1203 1205 1204 1201 1194 1196 1187 1191 1188 1190 1189 1185 1186 757 1184 1181 759 1180 844 1179 1178 1177 845 1175 863 1174 1007 1173 1122 1172 1171 1167 1168 1163 1166 1165 1141 1162 1153 1159 1158 1156 ...
result:
ok 2 cases.
Test #15:
score: 0
Accepted
time: 10ms
memory: 5096kb
input:
1078 0111011100111011000000110100010011001100100101011100111000110001110111110010111010110111010110001010100111101001110111010010000001000100110000000010000010111010101000000110101011011011000001100000011111010001010001101111011110111110000110111111111111101100110100011001110110111011111001110010110...
output:
1076 1074 1075 1070 1067 1069 1065 1064 1063 918 1061 922 1060 1058 1056 1057 925 1055 927 1054 1053 941 1052 1046 1051 1050 1048 1047 1014 1045 1042 1044 1024 1040 1037 1039 1035 1033 1034 1032 1029 1030 1028 1025 1027 1026 1023 1022 1020 1021 1016 1019 1015 1013 1012 1011 995 1010 997 1009 999 100...
result:
ok 2 cases.
Test #16:
score: 0
Accepted
time: 11ms
memory: 5668kb
input:
1310 0110101010101111001001001110010101000100000000011001001110111010011000110110010000001110111100110100110110110000011001000101100100000011011111011100010001101111001100100000011100111111101101001011000101000011100101111011100101011111000100101110011110001101110110100111101101011000000000101000101...
output:
1310 1307 1306 1302 1301 1300 1299 1296 1298 1297 1295 1293 1277 1292 1291 1280 1290 1286 1285 1282 1283 1281 1274 1275 3 1273 1104 1272 1271 1266 1269 1265 1262 1264 1263 1261 1260 1231 1259 1236 1258 1252 1257 1256 1254 1243 1251 1250 1248 1244 1247 1238 1242 1239 1241 1237 1232 1235 1234 1230 122...
result:
ok 2 cases.
Test #17:
score: 0
Accepted
time: 13ms
memory: 6144kb
input:
1542 0000100001001001100011001101100001110111010111001110111110011011001000110010001111000000100011101001000100000001111001110100110101101111000011100010000100000111010001010110101110000001000001110100101111100001110010111000111001010111011100100100111011010101001100100101110110011000001011001000011...
output:
1540 1536 1537 1494 1534 1498 1533 1507 1532 1531 1524 1530 1528 1529 1525 1527 1508 1521 1519 1511 1518 1517 1516 1510 1506 1501 1503 1502 1499 1500 1497 1495 1460 1491 1490 1462 1487 1476 1485 1484 1481 1482 1480 1477 1479 1468 1475 1471 1474 1472 1473 1469 1470 1466 1467 1463 1465 1452 1451 1419 ...
result:
ok 2 cases.
Test #18:
score: 0
Accepted
time: 15ms
memory: 7968kb
input:
2000 0101010000001001011001110100110110001010001110110101101100010010011100000111001100000000110111011111100001110001111011101101110010100100001001110010001111011110011011010000100001011100000000110011000110010100101010110100001010101001111101011001110011010001100110000110101110000001000101001101010...
output:
1999 1998 1996 1997 1995 1991 1990 1988 1985 1987 1972 1984 1980 1982 1974 1978 1973 1971 1970 1966 1969 1968 1967 1962 1963 1961 1959 1879 1958 1957 1921 1956 1955 1954 1922 1952 1924 1951 1939 1950 1948 1949 1947 1946 1942 1944 1941 1940 1938 1936 1937 1935 1926 1934 1933 1930 1928 1927 1925 1919 ...
result:
ok 1 cases.
Test #19:
score: 0
Accepted
time: 15ms
memory: 8188kb
input:
2000 0100001100010101000111011110110000001010100001111010011110111010011101000001100111011101101100000100100011001100011101011110101011101000010000000001010110001100011111100011010110101010001100011100011100000111011011100010110010100001111101011001010111111101011100111011110001101000111100110101000...
output:
1985 1997 1994 1990 1993 1992 1989 1988 1987 1983 139 1982 689 1981 1980 697 1978 1961 1976 1973 1975 1969 1971 1963 1968 1967 1965 1966 1964 1962 700 1959 1958 1956 1954 703 1952 1951 1948 1949 704 1947 1946 706 1944 965 1942 974 1941 1940 1939 1915 1937 1934 1936 1917 1933 1918 1932 1931 1926 1930...
result:
ok 1 cases.
Test #20:
score: 0
Accepted
time: 20ms
memory: 8172kb
input:
2000 0110101010100011101110010101000111001011110000101111001110111111100111000101010001110111000110110001010000010101101001011001111111011111111111011111000011100001111110000101100100000110100100100110110010000101101101100100001101100010011100000011110000100100011110111001101001101100110111011101011...
output:
1997 2000 1996 1963 1994 1993 1967 1992 1986 1991 1988 1990 1989 1985 1984 1971 1983 1972 1982 1981 1980 1979 1978 1976 1977 1975 1968 1969 1966 1959 1956 1950 1952 1951 1947 1944 1945 1940 1909 1939 1938 1911 1937 1913 1936 1917 1935 1934 1924 1933 1932 1928 1931 1929 1926 1927 1925 1921 1922 1919 ...
result:
ok 1 cases.
Test #21:
score: 0
Accepted
time: 16ms
memory: 7920kb
input:
2000 0110000110000000010000010011101111110001110101010000000001101110101010101001111001010100100101001100010100101000110001000101000101010011011000000100011110100001000010000111100110111010110001000100011100100011111001011011111011111001101101111011111011111010011100001111010001011101110000000001011...
output:
1997 2000 1999 1998 1995 1996 1994 1975 1993 1987 1991 1984 1986 1983 1982 1981 1980 1979 1978 1976 1974 1972 1973 1969 1964 1965 1962 1961 1947 1960 1957 1958 1955 1956 1954 1952 1949 1951 1950 293 1944 1939 1943 1942 1940 251 1937 1936 1932 1935 1933 1931 249 1930 214 1925 207 1924 1900 1922 1921 ...
result:
ok 1 cases.
Test #22:
score: 0
Accepted
time: 12ms
memory: 8132kb
input:
2000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...
output:
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 1941 ...
result:
ok 1 cases.
Test #23:
score: 0
Accepted
time: 13ms
memory: 7940kb
input:
2000 0111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111...
output:
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 1941 ...
result:
ok 1 cases.