Submission #1153595

#TimeUsernameProblemLanguageResultExecution timeMemory
1153595zhasynGondola (IOI14_gondola)C++20
55 / 100
12 ms2364 KiB
#include "gondola.h" #include <bits/stdc++.h> #define pb push_back #define pf push_front using namespace std; #define F first #define S second typedef long long ll; #define pii pair <int, int> #define pll pair <ll, ll> typedef long double ld; const ll N = 3 * 1e5 + 100, M = 1e7 + 10, len = 21, inf = 1e18; const ll mod = 998244353; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ll um(ll a, ll b){ return (1LL * a * b) % mod; } ll subr(ll a, ll b){ return ((1LL * a - b) % mod + mod) % mod; } bool cc[N]; int valid(int n, int arr[]) { int cur = 0; bool was = false; for(int i = 0; i < 2 * n; i++){ cur = cur%n + 1; if(i < n){ if(cc[arr[i%n]] == true) return 0; cc[arr[i%n]] = true; } if(was){ if(arr[i%n] > n) continue; if(arr[i%n] != cur) return 0; } else{ if(arr[i%n] <= n){ was = true; cur = arr[i%n]; } } } return 1; } //---------------------- int replacement(int n, int arr[], int res[]) { int cur = 0; bool was = false; vector <pii> vec; for(int i = 0; i < 2 * n; i++){ cur = cur%n + 1; if(was == false && arr[i%n] <= n){ was = true; cur = arr[i%n]; } if(was == true){ if(cc[cur]) continue; cc[cur] = true; vec.pb({arr[i%n], cur}); } } if(was == false){ for(int i = 0; i < n; i++){ vec.pb({arr[i], i + 1}); } } sort(vec.begin(), vec.end()); int from = 0, lt; bool mk = false; for(int i = 0; i < (int)vec.size(); i++){ if(vec[i].F == vec[i].S) continue; res[from++] = vec[i].S; if(mk == false) lt = n + 1; else lt = vec[i - 1].F + 1; //cout << vec[i].F << " "<< vec[i].S << " "<< lt << endl; for(int j = lt; j < vec[i].F; j++){ res[from++] = j; } mk = true; } // for(int i = 0; i < from; i++){ // cout << res[i] << " "; // } // cout << endl; return from; } //---------------------- int countReplacement(int n, int inputSeq[]) { return -3; }
#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...