QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#480391#8838. Jesse's Jobucup-team4361#WA 0ms5816kbC++14981b2024-07-16 15:10:252024-07-16 15:10:27

Judging History

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

  • [2024-07-16 15:10:27]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:5816kb
  • [2024-07-16 15:10:25]
  • 提交

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 
		{
			Ans.clear();
			printf("%d\n",n-2);
			for(int i=2;i<=n;i++)
			{
				Ans.push_back(re[i]);
				if(re[i]==2) break;
			}
			printf("%d\n",(int)Ans.size());
			sort(Ans.begin(),Ans.end());
			for(auto k : Ans) printf("%d ",k);
			printf("\n");
		}
	}
	return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 5816kb

input:

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

output:

0
1
2 
4
1 2 
4
3
2 3 4 

result:

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