제출 #396905

#제출 시각아이디문제언어결과실행 시간메모리
396905definitelynotmeeGondola (IOI14_gondola)C++98
60 / 100
31 ms4224 KiB
#include <bits/stdc++.h> #include "gondola.h" #define mp make_pair #define mt make_tuple #define ff first #define ss second using namespace std; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; const ll INFL = (1LL<<62)-1; const int INF = (1<<30)-1; const int MAXN = 0; const int MOD = 1e9 + 9; int valid(int n, int v[]){ int cur = -1; unordered_set<int> s; for(int i = 0; i < n; i++){ if(s.count(v[i])) return 0; s.insert(v[i]); if(cur==-1){ if(v[i] <= n) cur = v[i]; } if(cur!=-1){ if(v[i] <= n){ if(cur!=v[i]) return 0; } cur++; if(cur==n+1) cur-=n; } } return 1; } int replacement(int n, int v[], int resp[]){ int vproper[n]; int refid = -1, refv; int r; map<int,int> m; for(int i = 0; i < n; i++){ if(v[i] > n){ m.insert({v[i],i}); } else if(refid==-1){ refid = i; refv = v[i]-1; } } if(refid==-1){ refv = 0; refid = 0; } refid-=refv; for(int i = 0; i < n; i++){ vproper[i] = (i-refid+n)%n + 1; } int ptr = 0; for(int i = n+1; i <=( m.empty() ? 0 : m.rbegin()->first); i++){ if(m.count(i)){ resp[ptr++] = vproper[m[i]]; vproper[m[i]] = i; m.erase(i); }else { resp[ptr++] = vproper[m.rbegin()->second]; vproper[m.rbegin()->second] = i; } //cerr << (m.empty()) << endl; } return ptr; } inline long long power(ll a, ll b){ ll ret = 1; while(b>0){ if(b&1){ ret *= a; ret%=MOD; } a*=a; a%=MOD; b>>=1; } return ret; } int countReplacement(int n, int v[]){ if(!valid(n,v)) return 0; set<int> s; for(int i = 0; i < n; i++){ if(v[i] > n) s.insert(v[i]); } ll resp = 1; int cur = n+1; for(int i : s){ resp*= power(s.size(), i-cur); resp%=MOD; cur = i+1; s.erase(cur); } return resp; } /*int main(){ int n; cin >> n; int v[n]; int v2[n]; for(int i = 0; i < n; i++) cin >> v[i]; int a = replacement(n,v,v2); //cout << a << '\n'; for(int i = 0; i < a; i++){ cout << v2[i] << ' '; } }*/

컴파일 시 표준 에러 (stderr) 메시지

gondola.cpp: In function 'int replacement(int, int*, int*)':
gondola.cpp:43:9: warning: unused variable 'r' [-Wunused-variable]
   43 |     int r;
      |         ^
#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...