Submission #30336

#TimeUsernameProblemLanguageResultExecution timeMemory
30336kavun곤돌라 (IOI14_gondola)C++14
20 / 100
59 ms262144 KiB
#include "gondola.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; const int mod = 1e9 + 9; int power(int x, int k) { if(k == 1) return x; if(k & 1) return x*power(x,k-1) % mod; else { int val = power(x,k/2); return val*val % mod; } } int valid(int n, int inputSeq[]) { int index = -1, val = -1; for(int i = 0; i < n; i++) if(inputSeq[i] <= n) { index = i; val = inputSeq[i]; break; } for(int i = index + 1; i < n; i++) if(inputSeq[i] <= n && (val + i - index - 1) % n + 1 != inputSeq[i]) return 0; set<int> s; for(int i = 0; i < n; i++) s.insert(inputSeq[i]); if(s.size() == n) return 1; else return 0; } //---------------------- int replacement(int n, int gondolaSeq[], int replacementSeq[]) { return -2; } //---------------------- int countReplacement(int n, int inputSeq[]) { if(!valid(n,inputSeq)) return 0; int ans = 1; set<int> rep; for(int i = 0; i < n; i++) if(inputSeq[i] > n) rep.insert(inputSeq[i]); int before = n, cnt = 0; for(set<int>::iterator it = rep.begin(); it != rep.end(); it++) { int x = *it; ans = (ll) ans * power(rep.size() - cnt, x - before - 1) % mod; before = x; cnt++; } sort(inputSeq, inputSeq+n); if(inputSeq[0] > n) ans = (ll)ans * n % mod; return ans; }

Compilation message (stderr)

gondola.cpp: In function 'int valid(int, int*)':
gondola.cpp:37:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(s.size() == n)
               ^
#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...