QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#692717#5520. Distance ParitiesraywuWA 0ms3644kbC++141.2kb2024-10-31 14:57:042024-10-31 14:57:07

Judging History

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

  • [2024-10-31 14:57:07]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3644kb
  • [2024-10-31 14:57:04]
  • 提交

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;
}

詳細信息

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)