# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
28131 | 2017-07-15T11:56:16 Z | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(#1199, suhgyuho_william) | The Ant and The Bitcoin (FXCUP2_ant) | C++14 | 0 ms | 4660 KB |
#include <bits/stdc++.h> #include <unistd.h> #define pii pair<int,int> #define pll pair<lld,lld> #define pb push_back #define lld long long using namespace std; lld N,where; lld L,T; struct data{ lld x; lld num; }a[100002]; lld memo[100002]; char s[100002][3]; lld change(lld value,char op){ lld i=0; a[i].x = value; if(op == 'L'){ if(T <= a[i].x) a[i].x -= T; else if(T <= a[i].x+L) a[i].x = T-a[i].x; else a[i].x = a[i].x+L*2-T; }else{ if(T <= L-a[i].x) a[i].x += T; else if(T <= L*2-a[i].x) a[i].x = -a[i].x + L*2 - T; else a[i].x = T-(L*2-a[i].x); } return a[i].x; } int main(){ scanf("%lld %lld %lld",&N,&L,&T); T %= (L*2); for(lld i=1; i<=N; i++){ scanf("%lld %s",&a[i].x,&s[i]); a[i].num = i; } sort(a+1,a+N+1,[&](data &x,data &y){ return x.x < y.x; }); scanf("%lld",&where); for(lld i=1; i<=N; i++){ if(a[i].num == where){ where = i; break; } } for(lld i=1; i<=N; i++){ memo[i] = a[i].num; a[i].num = i; a[i].x = change(a[i].x,s[i][0]); } sort(a+1,a+N+1,[&](data &x,data &y){ return x.x < y.x; }); for(lld i=1; i<=N; i++){ if(a[i].num == where){ where = i; break; } } where = memo[where]; printf("%lld\n",where); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 4660 KB | Output is correct |
2 | Correct | 0 ms | 4660 KB | Output is correct |
3 | Correct | 0 ms | 4660 KB | Output is correct |
4 | Correct | 0 ms | 4660 KB | Output is correct |
5 | Correct | 0 ms | 4660 KB | Output is correct |
6 | Incorrect | 0 ms | 4660 KB | Output isn't correct |
7 | Halted | 0 ms | 0 KB | - |