# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
119645 | CaroLinda | Gondola (IOI14_gondola) | C++14 | 87 ms | 6008 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#include "gondola.h"
#define lp(i,a,b) for(int i=a;i<b;i++)
#define ll long long
#define pii pair<int,int>
#define ff first
#define ss second
#define pb push_back
const int MOD=1e9+9;
const int maxn=1e5+10;
using namespace std ;
int valid(int n, int inputSeq[])
{
set<int> s ;
int k=-1 ;
lp(i,0,n)
{
if( s.find(inputSeq[i]) != s.end() )
return 0 ;
s.insert(inputSeq[i]) ;
if(inputSeq[i]<=n) k = i ;
}
if(k==-1) return 1 ;
int count=(inputSeq[k]-k-1+n)%n+1 ;
lp(i,0,n)
{
if(inputSeq[i]<=n && inputSeq[i]!=count)
return 0 ;
if (++count>n) count=1 ;
}
return 1 ;
}
int replacement(int n, int gondolaSeq[] , int replacementSeq[])
{
int k=-1;
lp(i,0,n)
if(gondolaSeq[i]<=n)k=i ;
int count ;
if(k==-1)
count=1 ;
else count = (gondolaSeq[k]-k-1+n)%n+1 ;
vector<pii> p ;
lp(i,0,n)
{
if(gondolaSeq[i]>n)
p.pb( pii( gondolaSeq[i] , count ) ) ;
if(++count>n) count=1 ;
}
sort(p.begin(),p.end()) ;
int ind=0 ;
lp(i,0,p.size()){
while(ind+n+1<=p[i].ff){
replacementSeq[ind]=p[i].ss ;
p[i].ss = ind+n+1 ;
ind++ ;
}
}
return ind ;
}
ll expo(ll x, int n)
{
if(n==0) return 1 ;
if(n==1) return x ;
if(n%2==0)
{
ll aux=expo(x,n/2) ;
return (aux*aux)%MOD ;
}
return (x*expo(x,n-1))%MOD ;
}
int countReplacement(int n, int inputSeq[])
{
if(!valid(n,inputSeq)) return 0 ;
int g ;
for(g=0;g<n;g++)
if(inputSeq[g]>n) break ;
if(g==n+1) return 1 ;
ll ans = 1 ;
vector<int> p ;
p.pb(n+1) ;
lp(i,0,n)
if(inputSeq[i]>n)
p.pb(inputSeq[i]) ;
if(p.size() == n+1 ) ans = n ;
sort(p.begin(),p.end()) ;
lp(i,1,p.size())
{
ans = (ans * expo(p.size() - i , p[i]-p[i-1] ) ) % MOD ;
p[i] ++ ;
}
return ans ;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |