QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#557903 | #5095. 九王唱 | syxsyx | 0 | 1ms | 5952kb | C++14 | 963b | 2024-09-11 12:11:12 | 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%