QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#480396#8838. Jesse's Jobucup-team4361#WA 1ms5916kbC++14951b2024-07-16 15:13:452024-07-16 15:13:46

Judging History

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

  • [2024-07-16 15:13:46]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:5916kb
  • [2024-07-16 15:13:45]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;

inline int read()
{
	int x=0,f=1;
	char c=getchar();
	while(c<'0' || c>'9')
	{
		if(c=='-') f=-1;
		c=getchar();
	}
	while(c>='0' && c<='9')
	{
		x=x*10+c-'0';
		c=getchar();
	}
	return x*f;
}

const int N=1e6+5;
int n;
int p[N];
bool vis[N];
int len=0, re[N];
vector<int> Ans;

int main()
{
	int T=read();
	while(T--)
	{
		n=read();
		for(int i=1;i<=n;i++) p[i]=read(), vis[i]=false;
		int now=1;
		len=0;
		while(!vis[now])
		{
			re[++len]=now;
			vis[now]=true;
			now=p[now];
		}
		if(len!=n)
		{
			printf("%d\n",n);
			for(int i=1;i<=len;i++) printf("%d ",re[i]);
			printf("\n");
		}
		else
		{
			printf("%d\n",n-2);
			int cur = 1;
			Ans.push_back(1);
			while (p[cur] != 2) {
				cur = p[cur];
				Ans.push_back(cur);
			}
			printf("%d\n", Ans.size());
			for (auto i : Ans) printf("%d ", i);
			printf("\n");
		}
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

3
2
2 1
4
2 1 4 3
6
3 5 4 2 6 1

output:

0
1
1 
4
1 2 
4
4
1 1 3 4 

result:

wrong answer Participant didn't find permutation (test case 2)