# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
819607 | 2023-08-10T12:05:07 Z | makanhulia | Gondola (IOI14_gondola) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #include "gondola.h" #define ll long long #define mod 1000000007 using namespace std; //~ int n; //~ int inputSeq[1000]; int replacement(int n, int gondolaSeq[], int replacementSeq[]){ int mx = *max_element(inputSeq,inputSeq+n); return mx-n; } int countReplacement(int n, int inputSeq[]){ int mx = *max_element(inputSeq,inputSeq+n); return mx-n; } int valid(int n,int inputSeq[]){ int mn = INT_MAX; int id; map<int,int> cnt; for(int i = 0 ; i < n ; i++){ cnt[inputSeq[i]]++; if( cnt[inputSeq[i]] > 1 ) return 0; } for(int i = 0 ; i < n ; i++){ if( mn > inputSeq[i] ){ mn = inputSeq[i]; id = i; } } if( mn > n ) return 1; vector<int> v; mn--; id = (id-mn)%n+n; id %= n; for(int i = id ; i < n ; i++) v.push_back(inputSeq[i]); for(int i = 0 ; i < id ; i++) v.push_back(inputSeq[i]); for(int i = 0 ; i < n ; i++){ if( v[i] <= n && v[i] != i+1 ) return 0; } return 1; } //~ int main(){ //~ ios_base::sync_with_stdio(false); //~ cin.tie(0); //~ cout.tie(0); //~ cin>>n; //~ for(int i = 0 ; i < n ; i++){ //~ cin>>inputSeq[i]; //~ } //~ cout<<valid(n,inputSeq)<<"\n"; //~ }