Submission #912392

#TimeUsernameProblemLanguageResultExecution timeMemory
912392oblantisGondola (IOI14_gondola)C++17
50 / 100
17 ms2444 KiB
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #pragma GCC optimize("O3,unroll-loops") #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define all(v) v.begin(), v.end() #define pb push_back #define ss second #define ff first #define vt vector using namespace std; using namespace __gnu_pbds; typedef long long ll; typedef pair<int, int> pii; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; const int inf = 1e9; const int mod = 1e9+7; const int maxn = 1e5 + 1; #include "gondola.h" int valid(int n, int a[]){ for(int i = 0; i < n; i++){ if(a[i] <= n){ int j = (i + 1) % n, o = a[i] % n + 1; while(j != i){ if(a[j] <= n && a[j] != o)return 0; j = (j + 1) % n; o = o % n + 1; } return 1; } } return 1; } int replacement(int n, int a[], int out[]){ pii b[n]; for(int i = 0; i < n; i++){ if(a[i] <= n){ int x = a[i] % n + 1, j = (i + 1) % n, o = 1; while(j != i){ b[o] = {a[j], x}; x = x % n + 1; j = (j + 1) % n; o++; } break; } else if(i == n - 1){ for(int j = 0; j < n; j++)b[j] = {a[j], j + 1}; } } sort(b, b + n); int x = b[n - 1].ff - n; for(int i = n + 1, j = 0, o = 0; j < n; j++){ if(b[j].ff == b[j].ss)continue; while(b[j].ff != b[j].ss){ out[o++] = b[j].ss; b[j].ss = i; i++; } } return x; } int countReplacement(int n, int a[]){ if(!valid(n, a)){ return 0; } return 1; } //void solve() { //int n; //cin >> n; //int a[n]; //for(int i = 0; i < n; i++){ //cin >> a[i]; //} //int out[1000]; //int sz = replacement(n, a, out); //cout << sz << ' '; //for(int j = 0; j < sz; j++)cout << out[j] << ' '; //} //int main() { //ios_base::sync_with_stdio(0); //cin.tie(0); //int times = 1; ////cin >> times; //for(int i = 1; i <= times; i++) { //solve(); //} //return 0; //}
#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...