QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#692717 | #5520. Distance Parities | raywu | WA | 0ms | 3644kb | C++14 | 1.2kb | 2024-10-31 14:57:04 | 2024-10-31 14:57:07 |
Judging History
answer
#include <bits/stdc++.h>
#define _for(i, a, b) for (int i = (a); i <= (b); i ++ )
using namespace std;
const int N = 505;
int n, m, flag, vis[N], f[N], a[N][N]; vector<int> G[N]; queue<int> q;
inline bool bfs(int S) {
_for (i, 1, n) vis[i] = 0, f[i] = 0;
while (q.size()) q.pop();
q.push(S), vis[S] = 1; int u;
while (q.size()) {
u = q.front(), q.pop();
for (int v : G[u]) if (! vis[v]) vis[v] = 1, f[v] = f[u] ^ 1, q.push(v);
}
_for (i, 1, n) if (! vis[i]) return 0;
_for (i, 1, n) if (f[i] ^ a[S][i]) return 0;
return 1;
}
inline void solve() {
cin >> n, flag = 1, m = 0; char c;
_for (i, 1, n) G[i].clear();
_for (i, 1, n) _for (j, 1, n) {
cin >> c, m += a[i][j] = c - '0';
if ((i == j && c == '1') || (i > j && a[j][i] != a[i][j])) flag = 0;
if (c == '1') G[i].push_back(j);
}
_for (i, 1, n) flag &= bfs(i);
cout << (flag ? "Pure Memory" : "Track Lost") << "\n";
if (flag) {
cout << m / 2 << "\n";
_for (i, 1, n) _for (j, i + 1, n) if (a[i][j]) cout << i << " " << j << "\n";
}
}
int main() {
ios :: sync_with_stdio(false), cin.tie(0), cout.tie(0);
int T; cin >> T;
while (T -- ) solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 0
Wrong Answer
time: 0ms
memory: 3644kb
input:
3 3 011 101 110 4 0100 1000 0001 0010 5 01010 10101 01010 10101 01010
output:
Pure Memory 3 1 2 1 3 2 3 Track Lost Pure Memory 6 1 2 1 4 2 3 2 5 3 4 4 5
result:
wrong answer Token parameter [name=yes/no] equals to "Pure", doesn't correspond to pattern "[yY][eE][sS]|[nN][oO]" (test case 1)