제출 #932749

#제출 시각아이디문제언어결과실행 시간메모리
932749vjudge1곤돌라 (IOI14_gondola)C++17
25 / 100
12 ms3544 KiB
#include<bits/stdc++.h> #pragma GCC optimize("Ofast") using namespace std; #define F first #define S second #define ll long long // #define int ll #define pb push_back #define sz(s) (int)s.size() #define pii pair<int,int> #define all(v) v.begin(),v.end() #define mem(a,i) memset(a,i,sizeof(a)) #define in insert #define lb lower_bound #define ub upper_bound #define y1 yy #define ppb pop_back #define ull unsigned ll const int MAX=3e6+55; const int inf=1e9; const int N=2e5; const int C=331; const int C1=431; const int mod=1e9+9; const int mod1=1e9+9; #include "gondola.h" int pos[MAX]; int valid(int n, int a[]) { int mn=0; for(int i=0;i<n;i++){ if(a[i]<a[mn])mn=i; // pos[a[i]]=i; } vector<int> v; for(int i=mn;i<n;i++){ if(a[i]<=n){ v.pb(a[i]); pos[a[i]]=i-mn; } } for(int i=0;i<mn;i++){ if(a[i]<=n){ v.pb(a[i]); pos[a[i]]=n-mn+i; } } for(int i=1;i<sz(v);i++){ if(v[i]<=v[i-1]||v[i]-v[i-1]!=pos[v[i]]-pos[v[i-1]])return 0; } sort(a,a+n); for(int i=1;i<n;i++){ if(a[i]==a[i-1])return 0; } return 1; } int replacement(int n, int gondolaSeq[], int replacementSeq[]) { return -2; } int binpow(int a,int n){ if(n==0)return 1; if(n%2==1)return a*1ll*binpow(a,n-1)%mod; int k=binpow(a,n/2); return k*1ll*k%mod; } //---------------------- int countReplacement(int n, int a[]) { ll ans=1; if(!valid(n,a))return 0; vector<int> v; for(int i=0;i<n;i++){ if(a[i]>n){ v.pb(a[i]); } } sort(all(v)); int r=n+1; for(int i=0;i<sz(v);i++){ // cout<<sz(v)-i<<" "<<v[i]-r<<" "<<binpow(sz(v)-i,v[i]-r)<<"\n"; ans=ans*1ll*binpow(sz(v)-i,v[i]-r); r=v[i]+1; } if(sz(v)==n)ans=ans*1ll*n%mod; 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...