# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
744685 | 2023-05-19T01:06:04 Z | oolimry | Archery (IOI09_archery) | C++17 | 27 ms | 29180 KB |
#include <bits/stdc++.h> using namespace std; #define sz(x) (int) (x).size() #define all(x) (x).begin(), (x).end() #define show(x) cerr << #x << " is " << x << endl; #define show2(x,y) cerr << #x << " is " << x << " " << #y << " is " << y << endl; #define show3(x,y,z) cerr << #x << " is " << x << " " << #y << " is " << y << " " << #z << " is " << z << endl; typedef long long lint; typedef pair<lint,lint> ii; int arr[400005]; int target[400005]; int n, R; int me; inline int bruhmod(int x){ int res = x%n; if(res <= 0) res += n; return res; } ///for strong vector<int> candidates[600005]; inline int solve(int s){ //return debuggingstuff[s]; target[me] = s; for(int i = 1;i <= 2*n;i++){ int newi = i + (i >= 2*s); target[arr[i]] = (newi+1)/2; } //for(int i = 1;i <= 2*n;i++) show2(i, target[i]); if(me >= n+2){ ///weak assert(false); set<int> available; for(int i = 2;i <= n;i++) available.insert(i); for(int i = 2*n;i >= me;i--){ auto it = available.upper_bound(target[i]); bool looparound = false; if(it == available.begin()){ it = --available.end(); looparound = true; } else it--; if(i == me) return *it - (looparound * n); available.erase(it); } } else{ ///strong for(int i = 1;i <= 3*n;i++) candidates[i].clear(); for(int i = 1;i <= 2*n;i++){ candidates[target[i]].push_back(i); } if(candidates[1][0] < candidates[1][1]) swap(candidates[1][0], candidates[1][1]); int winner = candidates[1][1]; candidates[1].pop_back(); int looparounds = 0; priority_queue<int, vector<int>, greater<int> > choices; for(int turn = 1;turn <= 3*n+1;turn++){ for(int x : candidates[turn]) choices.push(x); int t = choices.top(); choices.pop(); if(turn > n and t == me){ int turnsleft = R-turn+1; looparounds += (turnsleft + n - 1) / n; turnsleft %= n; int res = (1-turnsleft+n) % n; if(res == 0) res = n; return res - n * looparounds; } if(t < winner) swap(t, winner); if(t == me) looparounds++; candidates[turn+n].push_back(t); } } } inline int bsta(int x){ ///find last position <= x int low = 0, high = n+1; while(low < high-1){ int mid = (low+high)/2; if(solve(mid) <= x) low = mid; else high = mid; } return low; } int bestPos = -1; int bestVal = 1; inline void consider(int pos){ int val = solve(pos); int valmod = bruhmod(val); if(valmod < bestVal){ bestVal = valmod; bestPos = pos; } if(valmod == bestVal and bestPos < pos){ bestVal = valmod; bestPos = pos; } } signed main(){ freopen("i.txt","r",stdin); ios_base::sync_with_stdio(false); cin.tie(0); cin >> n >> R; cin >> me; //for(int i = 1;i <= n;i++) cin >> debuggingstuff[i]; if(me == 1){ cout << n; return 0; } for(int i = 1;i <= 2*n-1;i++) cin >> arr[i]; bestVal = n+1; int small = solve(1); consider(1); consider(n); int pos = bsta(small); consider(pos); small += (n - bruhmod(small)); for(int x = 0;x < 1;x++){ int pos = bsta(small); if(pos >= n) break; pos++; int val = solve(pos); pos = bsta(val); consider(pos); small += n; } cout << bestPos; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 25 ms | 29108 KB | Execution killed with signal 11 |
2 | Runtime error | 24 ms | 29128 KB | Execution killed with signal 11 |
3 | Runtime error | 22 ms | 29084 KB | Execution killed with signal 11 |
4 | Runtime error | 24 ms | 29056 KB | Execution killed with signal 11 |
5 | Runtime error | 21 ms | 29140 KB | Execution killed with signal 11 |
6 | Runtime error | 25 ms | 29140 KB | Execution killed with signal 11 |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 22 ms | 29128 KB | Execution killed with signal 11 |
2 | Runtime error | 21 ms | 29140 KB | Execution killed with signal 11 |
3 | Runtime error | 25 ms | 29052 KB | Execution killed with signal 11 |
4 | Runtime error | 21 ms | 29108 KB | Execution killed with signal 11 |
5 | Runtime error | 27 ms | 29104 KB | Execution killed with signal 11 |
6 | Runtime error | 21 ms | 29140 KB | Execution killed with signal 11 |
7 | Runtime error | 21 ms | 29140 KB | Execution killed with signal 11 |
8 | Runtime error | 22 ms | 29140 KB | Execution killed with signal 11 |
9 | Runtime error | 23 ms | 29084 KB | Execution killed with signal 11 |
10 | Runtime error | 22 ms | 29144 KB | Execution killed with signal 11 |
11 | Runtime error | 24 ms | 29136 KB | Execution killed with signal 11 |
12 | Runtime error | 21 ms | 29140 KB | Execution killed with signal 11 |
13 | Runtime error | 24 ms | 29176 KB | Execution killed with signal 11 |
14 | Runtime error | 21 ms | 29096 KB | Execution killed with signal 11 |
15 | Runtime error | 27 ms | 29112 KB | Execution killed with signal 11 |
16 | Runtime error | 20 ms | 29140 KB | Execution killed with signal 11 |
17 | Runtime error | 21 ms | 29136 KB | Execution killed with signal 11 |
18 | Runtime error | 21 ms | 29140 KB | Execution killed with signal 11 |
19 | Runtime error | 22 ms | 29128 KB | Execution killed with signal 11 |
20 | Runtime error | 22 ms | 29140 KB | Execution killed with signal 11 |
21 | Runtime error | 27 ms | 29152 KB | Execution killed with signal 11 |
22 | Runtime error | 26 ms | 29172 KB | Execution killed with signal 11 |
23 | Runtime error | 22 ms | 29128 KB | Execution killed with signal 11 |
24 | Runtime error | 20 ms | 29140 KB | Execution killed with signal 11 |
25 | Runtime error | 22 ms | 29172 KB | Execution killed with signal 11 |
26 | Runtime error | 21 ms | 29064 KB | Execution killed with signal 11 |
27 | Runtime error | 20 ms | 29140 KB | Execution killed with signal 11 |
28 | Runtime error | 24 ms | 29096 KB | Execution killed with signal 11 |
29 | Runtime error | 24 ms | 29128 KB | Execution killed with signal 11 |
30 | Runtime error | 21 ms | 29072 KB | Execution killed with signal 11 |
31 | Runtime error | 21 ms | 29076 KB | Execution killed with signal 11 |
32 | Runtime error | 23 ms | 29128 KB | Execution killed with signal 11 |
33 | Runtime error | 26 ms | 29140 KB | Execution killed with signal 11 |
34 | Runtime error | 23 ms | 29124 KB | Execution killed with signal 11 |
35 | Runtime error | 22 ms | 29096 KB | Execution killed with signal 11 |
36 | Runtime error | 22 ms | 29068 KB | Execution killed with signal 11 |
37 | Runtime error | 25 ms | 29108 KB | Execution killed with signal 11 |
38 | Runtime error | 22 ms | 29152 KB | Execution killed with signal 11 |
39 | Runtime error | 23 ms | 29112 KB | Execution killed with signal 11 |
40 | Runtime error | 21 ms | 29140 KB | Execution killed with signal 11 |
41 | Runtime error | 26 ms | 29072 KB | Execution killed with signal 11 |
42 | Runtime error | 25 ms | 29180 KB | Execution killed with signal 11 |
43 | Runtime error | 23 ms | 29128 KB | Execution killed with signal 11 |
44 | Runtime error | 22 ms | 29140 KB | Execution killed with signal 11 |
45 | Runtime error | 26 ms | 29140 KB | Execution killed with signal 11 |
46 | Runtime error | 22 ms | 29140 KB | Execution killed with signal 11 |
47 | Runtime error | 22 ms | 29052 KB | Execution killed with signal 11 |