| 21966 | 2026-01-14 11:39:10 | Fri | Táblás játék | cpp17 | Futási hiba 0/50 | 97ms | 65536 KiB |
#include <iostream>
#include <fstream>
#include <queue>
using namespace std;
int main()
{
int n, m, x, y, v;
queue <int> q, qq; // for finding the longest paths
cin >> n >> m;
int t[n][n], tt[n][n]; // t[][] changes on second route to remove all items from the first route, but tt[][] doesn't to prevent any loops
int s[n]; // 1 if the cell doesn'z have any arrows pointing to it
bool e[n]; // 1 if the cell doesn't have any arrows pointing from it
for (int i = 0; i < n * n; i++) {
t[i / n][i % n] = 0;
tt[i / n][i % n] = 0;
}
for (int i = 0; i < m; i++) {
cin >> x >> y;
t[x - 1][y - 1] = 1;
tt[x - 1][y - 1] = t[x - 1][y - 1]; // to back the shit up; probably not optimal, but oh well
}
// fill up s[] and e[]
for (int i = 0; i < n; i++) {
x = 0;
y = 0;
for (int ii = 0; ii < n; ii++) {
x += t[ii][i];
y += t[i][ii];
}
if (x == 0) s[i] = true;
else s[i] = false;
if (y == 0) e[i] = true;
else e[i] = false;
}
/*
// TEMP: output all of t[][], s[] and e[]
for (int i = 0; i < n; i++) {
for (int ii = 0; ii < n; ii++) {
cout << t[i][ii] << " ";
}
cout << "\n";
}
cout << "\n";
for (int i = 0; i < n; i++) {
cout << s[i] << " ";
}
cout << "\n\n";
for (int i = 0; i < n; i++) {
cout << e[i] << " ";
}
*/
// first walk
for (int i = 0; i < n; i++) {
if (s[i] > 0) {
q.push(i);
v = 1;
while (e[q.back()] != 1) {
x = q.back();
for (int ii = 0; ii < n; ii++) {
if (t[x][ii] > 0) {
q.push(ii);
v++;
for (int iii = 0; iii < n; iii++) {
t[iii][ii] = 0; // don't worry, I still have a backup in tt[][]
}
break;
}
}
}
break;
}
}
// second walk but with avoiding the previous path as much as ever physically possible this time around
for (int i = n - 1; i >= 0; i--) {
if (s[i] > 0) {
qq.push(i);
v++;
while (e[qq.back()] != 1) {
x = qq.back();
y = 0;
for (int ii = 0; ii < n; ii++) {
if (t[x][ii] > 0) {
qq.push(ii);
v++;
y = 1;
break;
}
}
if (y == 0) { // in case there is no valid path
for (int ii = 0; ii < n; ii++) {
if (tt[x][ii] > 0) {
qq.push(ii);
y = 1;
break;
}
}
}
}
break;
}
}
// output and clear the queues, all in the dumbest way imaginable
cout << v << "\n";
while (!q.empty()) {
cout << q.front() + 1 << " ";
q.pop();
}
cout << 0 << "\n";
while (!qq.empty()) {
cout << qq.front() + 1 << " ";
qq.pop();
}
cout << "0";
return 0;
}
| Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Elfogadva | 1ms | 500 KiB | ||||
| 2 | Futási hiba | 94ms | 65536 KiB | ||||
| subtask2 | 0/5 | ||||||
| 3 | Elfogadva | 1ms | 316 KiB | ||||
| 4 | Elfogadva | 1ms | 316 KiB | ||||
| 5 | Hibás válasz | 1ms | 316 KiB | ||||
| 6 | Hibás válasz | 1ms | 316 KiB | ||||
| 7 | Hibás válasz | 1ms | 316 KiB | ||||
| subtask3 | 0/5 | ||||||
| 8 | Hibás válasz | 1ms | 328 KiB | ||||
| 9 | Hibás válasz | 1ms | 316 KiB | ||||
| 10 | Elfogadva | 1ms | 500 KiB | ||||
| 11 | Hibás válasz | 1ms | 316 KiB | ||||
| 12 | Hibás válasz | 1ms | 316 KiB | ||||
| subtask4 | 0/5 | ||||||
| 13 | Elfogadva | 1ms | 564 KiB | ||||
| 14 | Elfogadva | 1ms | 568 KiB | ||||
| 15 | Elfogadva | 39ms | 18048 KiB | ||||
| 16 | Hibás válasz | 78ms | 31856 KiB | ||||
| 17 | Futási hiba | 83ms | 65536 KiB | ||||
| subtask5 | 0/10 | ||||||
| 18 | Elfogadva | 1ms | 316 KiB | ||||
| 19 | Elfogadva | 2ms | 316 KiB | ||||
| 20 | Elfogadva | 2ms | 316 KiB | ||||
| 21 | Elfogadva | 2ms | 316 KiB | ||||
| 22 | Elfogadva | 1ms | 316 KiB | ||||
| 23 | Hibás válasz | 1ms | 520 KiB | ||||
| 24 | Hibás válasz | 2ms | 820 KiB | ||||
| 25 | Elfogadva | 4ms | 2364 KiB | ||||
| 26 | Hibás válasz | 14ms | 8596 KiB | ||||
| 27 | Futási hiba | 83ms | 65536 KiB | ||||
| subtask6 | 0/10 | ||||||
| 28 | Hibás válasz | 2ms | 556 KiB | ||||
| 29 | Hibás válasz | 1ms | 316 KiB | ||||
| 30 | Hibás válasz | 1ms | 316 KiB | ||||
| 31 | Hibás válasz | 1ms | 316 KiB | ||||
| 32 | Hibás válasz | 1ms | 316 KiB | ||||
| 33 | Hibás válasz | 1ms | 316 KiB | ||||
| 34 | Hibás válasz | 2ms | 820 KiB | ||||
| 35 | Hibás válasz | 4ms | 2296 KiB | ||||
| 36 | Hibás válasz | 16ms | 8608 KiB | ||||
| 37 | Futási hiba | 83ms | 65536 KiB | ||||
| subtask7 | 0/15 | ||||||
| 38 | Hibás válasz | 28ms | 13208 KiB | ||||
| 39 | Futási hiba | 96ms | 65536 KiB | ||||
| 40 | Futási hiba | 85ms | 65536 KiB | ||||
| 41 | Futási hiba | 83ms | 65536 KiB | ||||
| 42 | Futási hiba | 97ms | 65536 KiB | ||||
| 43 | Futási hiba | 96ms | 65536 KiB | ||||
| 44 | Futási hiba | 86ms | 65536 KiB | ||||
| 45 | Futási hiba | 93ms | 65536 KiB | ||||
| 46 | Futási hiba | 82ms | 65536 KiB | ||||
| 47 | Futási hiba | 94ms | 65536 KiB | ||||
| 48 | Futási hiba | 93ms | 65536 KiB | ||||
| 49 | Hibás válasz | 12ms | 6196 KiB | ||||
| 50 | Futási hiba | 94ms | 65536 KiB | ||||
| 51 | Futási hiba | 83ms | 65536 KiB | ||||
| 52 | Futási hiba | 85ms | 65536 KiB | ||||