# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
28129 | 2017-07-15T11:47:50 Z | aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(#1199, suhgyuho_william) | The Ant and The Bitcoin (FXCUP2_ant) | C++14 | 0 ms | 4268 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,ans; lld L,T; struct data{ lld x; lld num; }a[100002]; int memo[100002]; char s[100002][3]; lld change(lld value,char op){ int 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(int 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; }); int where; scanf("%d",&where); for(int i=1; i<=N; i++){ if(a[i].num == where){ //where = i; break; } } for(int 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(int i=1; i<=N; i++){ if(a[i].num == where){ where = i; break; } } where = memo[where]; printf("%d\n",where); return 0; }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 0 ms | 4268 KB | Output is correct |
2 | Incorrect | 0 ms | 4268 KB | Output isn't correct |
3 | Halted | 0 ms | 0 KB | - |