제출 #1210628

#제출 시각아이디문제언어결과실행 시간메모리
1210628m5588ohammedGondola (IOI14_gondola)C++20
55 / 100
11 ms2116 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; int valid(int n, int arr[]) { vector <int> v; long long mn=1e18,idx=0; for(int i=0;i<n;i++){ v.push_back(arr[i]); if(arr[i]<mn){ mn=arr[i]; idx=i; } } int cnt=1; for(int i=idx;i<idx+n;i++){ if(arr[i%n]>n) { arr[i%n]=cnt++; } if(arr[i%n]!=cnt) return 0; cnt++; } sort(v.begin(),v.end()); for(int i=0;i<v.size()-1;i++) if(v[i]==v[i+1]) return 0; return 1; } //---------------------- int replacement(int n, int arr[], int rep[]) { vector <int> v; long long idx=0; long long mx=0,idx2=0; for(int i=0;i<n;i++){ if(arr[i]<n){ idx=(i-arr[i]+1+n)%n; } if(arr[i]>mx){ mx=arr[i]; idx2=i; } } for(int i=0;i<mx-n;i++) rep[i]=-1; int cnt=1; for(int i=idx;i<idx+n;i++){ if(arr[i%n]!=cnt){ rep[arr[i%n]-n-1]=i%n; } arr[i%n]=cnt; cnt++; } for(int i=0;i<mx-n;i++) if(rep[i]==-1) rep[i]=idx2; int num=n+1; for(int i=0;i<mx-n;i++){ //cout<<rep[i]<<" "; int x=arr[rep[i]]; arr[rep[i]]=num; rep[i]=x; num++; } //cout<<endl; return mx-n; } //---------------------- #define mod 1000000009 int vis[1000001]; int countReplacement(int n, int arr[]) { if(valid(n,arr)==0) return 0; int mx=0; for(int i=0;i<n;i++) mx=max(arr[i],mx); long long cnt=0,ans=1; for(int i=0;i<n;i++){ if(arr[i]>n){ vis[arr[i]]=1; cnt++; } } for(int i=n+1;i<=mx;i++){ if(vis[i]==0){ ans*=cnt; ans%=mod; } else cnt--; } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...