QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#557903#5095. 九王唱syxsyx0 1ms5952kbC++14963b2024-09-11 12:11:122024-09-11 12:11:12

Judging History

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

  • [2024-09-11 12:11:12]
  • 评测
  • 测评结果:0
  • 用时:1ms
  • 内存:5952kb
  • [2024-09-11 12:11:12]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int N=5005;
int n,seed;
int a[N*2][N];
void gen(int n,int seed){
    std::mt19937 rnd(seed);
    for(int i=1;i<=n;++i){
        for(int j=1;j<=n+1;++j){
            a[i][j]=j;
            std::swap(a[i][j],a[i][rnd()%j+1]);
        }
    }
}
int ans[N];
int del[N];
int tmp[N];
int tag[N];
int srt[N];
void update(int x)
{
	for(int i=1;i<=n+1;i++) srt[a[x][i]]=i;
	memset(tag,0,sizeof(tag));
	int now=n+1;
	tmp[0]=srt[now];
	for(int i=1;i<=n;i++)
	{
		tag[del[i]]=1;
		while(tag[srt[now]]==1) now--;
		tmp[i]=srt[now];
	}
	memcpy(del,tmp,sizeof(del));
	if(x<=n) for(int i=1;i<=n+1;i++) if(!tag[i]) ans[x]=i;
}
int main()
{
	scanf("%d%d",&n,&seed);
	if(seed) gen(n,seed);
	else
	{
		for(int i=1;i<=n;i++)
			for(int j=1;j<=n+1;j++) scanf("%d",&a[i][j]);
	}
	for(int i=1;i<=n;i++) memcpy(a[n+i],a[i],sizeof(a[n+i]));
	for(int i=n*2;i>=1;i--) update(i);
	for(int i=1;i<=n;i++) printf("%d ",ans[i]);
	printf("\n");
}

詳細信息

Subtask #1:

score: 0
Wrong Answer

Test #1:

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

input:

8 0
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5

output:

9 9 9 9 9 9 9 9 

result:

wrong answer 1st numbers differ - expected: '5', found: '9'

Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Skipped

Dependency #1:

0%

Subtask #4:

score: 0
Skipped

Dependency #1:

0%