Submission #28135

# Submission time Handle Problem Language Result Execution time Memory
28135 2017-07-15T12:05:06 Z aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa(#1199, suhgyuho_william) The Ant and The Bitcoin (FXCUP2_ant) C++14
1 / 1
56 ms 5928 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;
	char s[3];
}a[100002];
lld memo[100002],tmp[100002];

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,&a[i].s);
		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,a[i].s[0]);
		//printf("%lld %lld\n",a[i].x,memo[i]);
	}
	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;
		}
	}
	//printf("%lld\n",where);
	for(lld i=1; i<=N; i++) tmp[memo[i]] = i;
	where = memo[where];
	printf("%lld\n",where);

	return 0;
}	

Compilation message

ant.cpp: In function 'int main()':
ant.cpp:37:34: warning: format '%s' expects argument of type 'char*', but argument 3 has type 'char (*)[3]' [-Wformat=]
   scanf("%lld %s",&a[i].x,&a[i].s);
                                  ^
ant.cpp:34:34: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld %lld %lld",&N,&L,&T);
                                  ^
ant.cpp:37:35: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%lld %s",&a[i].x,&a[i].s);
                                   ^
ant.cpp:43:22: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld",&where);
                      ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 5928 KB Output is correct
2 Correct 0 ms 5928 KB Output is correct
3 Correct 0 ms 5928 KB Output is correct
4 Correct 0 ms 5928 KB Output is correct
5 Correct 0 ms 5928 KB Output is correct
6 Correct 0 ms 5928 KB Output is correct
7 Correct 0 ms 5928 KB Output is correct
8 Correct 0 ms 5928 KB Output is correct
9 Correct 0 ms 5928 KB Output is correct
10 Correct 0 ms 5928 KB Output is correct
11 Correct 0 ms 5928 KB Output is correct
12 Correct 0 ms 5928 KB Output is correct
13 Correct 39 ms 5928 KB Output is correct
14 Correct 46 ms 5928 KB Output is correct
15 Correct 23 ms 5928 KB Output is correct
16 Correct 46 ms 5928 KB Output is correct
17 Correct 39 ms 5928 KB Output is correct
18 Correct 39 ms 5928 KB Output is correct
19 Correct 39 ms 5928 KB Output is correct
20 Correct 56 ms 5928 KB Output is correct