# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
118851 |
2019-06-19T23:45:39 Z |
ly20 |
Gondola (IOI14_gondola) |
C++17 |
|
61 ms |
5112 KB |
#include<bits/stdc++.h>
using namespace std;
const int INF=1123456789,MAXN=250010;
#define debug(args...) //fprintf(stderr,args)
map<int,int> vld;
int marc[MAXN];
#include "gondola.h"
int valid(int n,int seq[])
{
int mn=INF,at=INF,at2=INF,id0=0;
int st=0;
bool vl=1;
for(int i=0;i<n;i++)
{
if(vl==0)debug("%d\n",i);
if(vld[seq[i]]>0)vl=0;
vld[seq[i]]++;
if(st==0)
{
if(seq[i]>n)continue;
if(seq[i]<at && at==INF)
{
at=seq[i];mn=seq[i];
id0=(i+1-mn+n)%n;
}
else if(seq[i]<at)
{
at2=seq[i];st=1;
if(at2>mn)vl=0;
}
else
{
if((id0+seq[i]-1)%n!=i)vl=0;
at=seq[i];
}
}
else
{
if(seq[i]>n)continue;
if(seq[i]<at2 || seq[i]>mn || seq[i]>at)vl=0;
if((id0+seq[i]-1)%n!=i)vl=0;
at2=seq[i];
}
debug("%d %d %d\n",i,id0,(id0+seq[i])%n);
}
return vl;
}
int replacement(int n,int seq[],int replacementseq[])
{
vector<pair<int,int> > v;
int mn=INF,at=INF,at2=INF,id0=0,mx=0,imx=0;
int st=0;
bool vl=1;
for(int i=0;i<n;i++)
{
marc[seq[i]]=1;
if(mx<seq[i])imx=i;
mx=max(mx,seq[i]);
if(vl==0)debug("%d\n",i);
if(vld[seq[i]]>0)vl=0;
vld[seq[i]]++;
if(st==0)
{
if(seq[i]>n)continue;
if(seq[i]<at && at==INF)
{
at=seq[i];mn=seq[i];
id0=(i+1-mn+n)%n;
}
else if(seq[i]<at)
{
at2=seq[i];st=1;
if(at2>mn)vl=0;
}
else
{
if((id0+seq[i]-1)%n!=i)vl=0;
at=seq[i];
}
}
else
{
if(seq[i]>n)continue;
if(seq[i]<at2 || seq[i]>mn || seq[i]>at)vl=0;
if((id0+seq[i]-1)%n!=i)vl=0;
at2=seq[i];
}
debug("%d %d %d\n",i,id0,(id0+seq[i])%n);
}
int cnt=0,lst=0;
for(int i=0;i<n;i++)if(seq[i]>n && seq[i]!=mx)replacementseq[seq[i]-n-1]=(i-id0+n)%n+1;
for(int i=n+1;i<mx;i++)
{
if(!marc[i] && cnt==0)
{
replacementseq[i-n-1]=(imx-id0+n)%n+1;
cnt=1;
lst=i;
}
else if(!marc[i])
{
replacementseq[i-n-1]=lst;
lst=i;
}
}
for(int i=0;i<n;i++)if(seq[i]==mx)replacementseq[mx-n-1]=lst;
//for(int i=0;i<mx-n;i++)printf("%d ",replacementseq[i]);
//printf("\n");
return mx-n;
}
int countReplacement(int n,int inputSeq[])
{
return 0;
}
/*int main()
{
int n;
int v[40],k[40];
scanf("%d",&n);
for(int i=0;i<n;i++)scanf("%d",&v[i]);
printf("%d\n",replacement(n,v,k));
return 0;
}*/
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
384 KB |
Output is correct |
2 |
Correct |
2 ms |
384 KB |
Output is correct |
3 |
Correct |
2 ms |
256 KB |
Output is correct |
4 |
Correct |
2 ms |
384 KB |
Output is correct |
5 |
Correct |
2 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
384 KB |
Output is correct |
2 |
Correct |
2 ms |
384 KB |
Output is correct |
3 |
Correct |
2 ms |
384 KB |
Output is correct |
4 |
Correct |
2 ms |
384 KB |
Output is correct |
5 |
Correct |
2 ms |
384 KB |
Output is correct |
6 |
Correct |
17 ms |
2432 KB |
Output is correct |
7 |
Correct |
42 ms |
4088 KB |
Output is correct |
8 |
Correct |
29 ms |
4340 KB |
Output is correct |
9 |
Correct |
10 ms |
1536 KB |
Output is correct |
10 |
Correct |
39 ms |
5084 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
384 KB |
Output is correct |
2 |
Correct |
2 ms |
256 KB |
Output is correct |
3 |
Correct |
2 ms |
256 KB |
Output is correct |
4 |
Correct |
2 ms |
384 KB |
Output is correct |
5 |
Correct |
2 ms |
384 KB |
Output is correct |
6 |
Correct |
18 ms |
2432 KB |
Output is correct |
7 |
Correct |
43 ms |
4148 KB |
Output is correct |
8 |
Correct |
29 ms |
4344 KB |
Output is correct |
9 |
Correct |
10 ms |
1536 KB |
Output is correct |
10 |
Correct |
41 ms |
4992 KB |
Output is correct |
11 |
Correct |
2 ms |
256 KB |
Output is correct |
12 |
Correct |
2 ms |
384 KB |
Output is correct |
13 |
Correct |
21 ms |
2304 KB |
Output is correct |
14 |
Correct |
2 ms |
384 KB |
Output is correct |
15 |
Correct |
61 ms |
5112 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Integer 0 violates the range [1, 76] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Integer 0 violates the range [1, 76] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Integer 0 violates the range [1, 76] |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
256 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
2 ms |
384 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |