Submission #1369009
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define REP(i,n) FOR(i,0,n)
#define ALL(v) (v).begin(),(v).end()
#define fi first
#define se second
template<typename A, typename B> inline bool chmax(A &a, B b) { if (a<b) { a=b; return 1; } return 0; }
template<typename A, typename B> inline bool chmin(A &a, B b) { if (a>b) { a=b; return 1; } return 0; }
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef pair<int, pii> P;
const ll INF = 1ll<<30;
const ll MOD = 1000000007;
const double EPS = 1e-10;
int N, L, T;
int X[112345], W[112345];
int ans[112345];
int endP(int idx) {
if (W[idx] == 1) return ((ll)X[idx] + T) % L;
else return ( ( (ll)X[idx] - T ) % L + L) % L;
}
int main() {
cin >> N >> L >> T;
REP(i, N) scanf("%d %d", X + i, W + i);
vector<pii> e(N); // T秒後の各位置
REP(i, N) e[i] = pii(endP(i), -W[i]);
sort(ALL(e));
ll idx = 0;
FOR(i, 1, N) {
ll t = 1e11;
if (W[0] == 1 && W[i] == 2) t = X[i] - X[0];
if (W[0] == 2 && W[i] == 1) t = X[0] + L - X[i];
if (2 * T >= t) idx += (2 * T - t) / L + 1;
idx %= N;
}
if (W[0] == 2) idx = (-idx + N) % N;
int st = lower_bound(ALL(e), pii(endP(0), -INF)) - e.begin();
if (st + 1 < N && e[st].fi == e[st + 1].fi) {
if (W[0] == 1) st++;
}
REP(i, N) ans[(idx + i) % N] = e[(i + st) % N].fi;
REP(i, N) printf("%d\n", ans[i]);
return 0;
}
Submission Info
Submission Time
2017-06-21 17:29:21+0900
Task
C - Ants on a Circle
User
tkmst201
Language
C++14 (GCC 5.4.1)
Score
700
Code Size
1490 Byte
Status
AC
Exec Time
38 ms
Memory
3200 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:34:40: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
REP(i, N) scanf("%d %d", X + i, W + i);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
700 / 700
Status
Set Name
Test Cases
Sample
sample_01.txt, sample_02.txt
All
sample_01.txt, sample_02.txt, sample_01.txt, sample_02.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt
Case Name
Status
Exec Time
Memory
sample_01.txt
AC
1 ms
256 KB
sample_02.txt
AC
1 ms
256 KB
subtask_1_01.txt
AC
23 ms
2048 KB
subtask_1_02.txt
AC
19 ms
1536 KB
subtask_1_03.txt
AC
37 ms
3200 KB
subtask_1_04.txt
AC
38 ms
3200 KB
subtask_1_05.txt
AC
6 ms
640 KB
subtask_1_06.txt
AC
9 ms
896 KB
subtask_1_07.txt
AC
35 ms
2816 KB
subtask_1_08.txt
AC
36 ms
2816 KB
subtask_1_09.txt
AC
24 ms
1920 KB
subtask_1_10.txt
AC
21 ms
1664 KB
subtask_1_11.txt
AC
6 ms
640 KB
subtask_1_12.txt
AC
32 ms
2816 KB
subtask_1_13.txt
AC
22 ms
2176 KB
subtask_1_14.txt
AC
21 ms
2048 KB
subtask_1_15.txt
AC
1 ms
256 KB
subtask_1_16.txt
AC
1 ms
256 KB