Submission #572441

#TimeUsernameProblemLanguageResultExecution timeMemory
572441MadokaMagicaFanRoller Coaster Railroad (IOI16_railroad)C++14
Compilation error
0 ms0 KiB
#include "bits/stdc++.h" using namespace std; using ll = long long; const ll inf = 1e9; const int md1 = 1e9+7; const int md2 = 998244353; #define all(v) v.begin(), v.end() #define rall(v) v.rbegin(), v.rend() #define sz(v) ((int)v.size()) #define forn(i,n) for(int i = 0; i < n; ++i) #define forbe(i,b,e) for(int i = b; i < e; ++i) #define pb push_back #define pry puts("YES") #define prn puts("NO") #define endl '\n' #define fst first #define scn second template<typename T> struct BIT{ int n; vector<T> fen; BIT(int n){ this->n = n; fen.assign(n,0); } BIT(vector<T> a) : BIT(a.size()){ for(int i = 0; i < n; ++i) add(i,a[i]); } void add(int x, T v){ for(; x < n; x |= x+1) fen[x] += v; } T query(int x){ T res = 0; for(; x >= 0; x = (x&(x+1))-1) res += fen[x]; return res; } T query(int l, int r){ return query(r) - query(l-1); } }; long int plan_roller_coster(vector<int> s, vector<int> t) { int n = sz(s); BIT<int> tr(2*n+1); BIT<int> trn(2*n+1); map<int,int> mp; vector<int> vals; for (int i = 0; i < n; ++i) { vals.pb(s[i]); vals.pb(t[i]); } sort(vals.begin(), vals.end()); vals.resize(distance(vals.begin(),unique(vals.begin(), vals.end()))); for (int i = 0; i < sz(vals); ++i) { mp[vals[i]] = i; } for (int i = 0; i < n; ++i) { s[i] = mp[s[i]]; t[i] = mp[t[i]]; } for (int i = 0; i < n; ++i) { tr.add(t[i],1); } vector<pair<int,int>> arr; for (int i = 0; i < n; ++i) { arr.pb({s[i],i}); } sort(arr.begin(), arr.end()); bool fnd = 0; int cnt = 0; for (int i = 0; i < n; ++i) { trn.add(t[i],1); ++cnt; int qr = tr.query(s[i]); if (qr > cnt) continue; if (qr < cnt-2) return 1; if (qr == cnt-1) { if (qr <= trn.query(s[i])) return 1; if (fnd) return 1; fnd = 1; --cnt; continue; } if (qr == cnt) { if (qr > trn.query(s[i])) continue; if (i == n-1) continue; if (fnd) return 1; fnd = 1; --cnt; continue; } } return 0; } #ifdef ONPC void solve() { int n; cin >> n; vector<int> s(n); for (int i = 0; i < n; ++i) cin >> s[i]; vector<int> t(n); for (int i = 0; i < n; ++i) cin >> t[i]; cout << plan_roller_coster(s,t) << endl; } int32_t main() { freopen("in", "r", stdin); int t = 1; /* cin >> t; */ while(t--) solve(); } #endif

Compilation message (stderr)

/usr/bin/ld: /tmp/ccxTAg98.o: in function `main':
grader.cpp:(.text.startup+0xf4): undefined reference to `plan_roller_coaster(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status