QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#692562#5520. Distance Paritieszeq2021WA 1ms4852kbC++142.7kb2024-10-31 14:42:362024-10-31 14:42:58

Judging History

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

  • [2024-10-31 14:42:58]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:4852kb
  • [2024-10-31 14:42:36]
  • 提交

answer

/*
*            /$$           /$$
*           |__/          |__/
*  /$$$$$$$$ /$$ /$$$$$$$$ /$$  /$$$$$$
* |____ /$$/| $$|____ /$$/| $$ /$$__  $$
*    /$$$$/ | $$   /$$$$/ | $$| $$  \ $$
*   /$$__/  | $$  /$$__/  | $$| $$  | $$
*  /$$$$$$$$| $$ /$$$$$$$$| $$|  $$$$$$$
* |________/|__/|________/|__/ \____  $$
*                                   | $$
*                                   | $$
*                                   |__/
*/
//hj23308保佑我
//Missile保佑我
/*
* 醒了在梦里挣扎,不觉黯淡了朝霞
*/
/*
* 我很高兴你没有忘了我,但是我现在更希望你已经忘了我了。
* 希望在你的记忆中,我只是尘土一撮,从你的全世界路过,然后四散飞扬不留下一点痕迹,而你要不回头的往前走。
* 我更希望我只是从你的全世界路过,只是路过
*/
/*
* 只是我在十字路口守了太久,守到黄沙如雨掩埋一切痕迹,才发现自己等的人已经离开了。
*/
/*
* 听我的 别回头 回头就可能会泪流满面,会被黄沙掩埋,所以即使痛苦也要向前走
*/
/*
* 我听到了「天行健」的回响,这是一个伟大斗士的不息自强;
* 我听到了「破万法」的回响,这是一个黑道打手的守护欲望;
* 我看见了「生生不息」的激荡,这是一个骗子的伟大乐章!
*/
/*
* 我用虚假的面具照顾着细腻的感情; 
* 我以华丽的衣物下藏着腐烂的血肉; 
* 当我摘下面具,褪去衣物,即便是我最亲近的人,也无法直视我  
*/
#include<bits/stdc++.h>
using namespace std;
const int MAXN=505;
int t,n,m;
string a[MAXN];
int f[MAXN][MAXN];
bool check()
{
	for(int i=1;i<=n;i++) {
		for(int j=1;j<=n;j++) {
			if(i==j&&a[i][j]!='0') return false;
			if(a[i][j]!=a[j][i]) return false; 
		}
	}
	return true;
}
bool solve()
{
	memset(f,0x3f,sizeof(f));
	for(int i=1;i<=n;i++) {
		f[i][i]=0;
		for(int j=i+1;j<=n;j++) {
			if(a[i][j]=='1') {
				m++;
				f[i][j]=f[j][i]=1;
			}
		}
	}
	for(int k=1;k<=n;k++) {
		for(int i=1;i<=n;i++) {
			for(int j=1;j<=n;j++) {
				f[i][j]=min(f[i][j],f[i][k]+f[k][j]);
			}
		}
	}
	for(int i=1;i<=n;i++) {
		for(int j=1;j<=n;j++) {
			char c=int(f[i][j]&1)+'0';
			if(a[i][j]!=c) return false;
		}
	}
	return true;
}
int main()
{
	std::ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>t;
	while(t--) {
		cin>>n;
		for(int i=1;i<=n;i++) {
			cin>>a[i];
			a[i]=" "+a[i];
		}
		m=0;
		if(!check()||!solve()) {
			cout<<"Track Lost\n";
			continue;
		}
		cout<<"Pure Memory\n";
		cout<<m<<"\n";
		for(int i=1;i<=n;i++) {
			for(int j=i+1;j<=n;j++) {
				if(a[i][j]=='1') {
					cout<<i<<" "<<j<<"\n";
				}
			}
		}
	}
	return 0;
}

詳細信息

Test #1:

score: 0
Wrong Answer
time: 1ms
memory: 4852kb

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)