#include "springboard.h"
// #include <cstdio>
void Reorder(int N) {
// �ϴ� ����� ��� ����.
int m = (1 + N) / 2;
int r = PutBall(m);
int rs = 0, re = 0;
if(r == -1){ // �������� ����. [1, m] �� R Ȯ��. [m + 1, N] �� ��.
r = PutBall(m);
// RRRRLLLL : -1, RRRRRRRR
// RRRRLLLR : LLLLLLLL
// RRRRLLRR : RLLLLLLL
// RRRRRLLLL : LLLLLLLLL
// RRRRRLLLR : RLLLLLLLL
// RRRRRLLRR : RRLLLLLLL
if(r == -1){ // ���� �� R
PutBall(1); return ;
}
rs = 0; re = m - 1;
}
else{ // ���������� ����. [m, N] �� L Ȯ��. [1, m - 1] �� ��.
r = PutBall(m); // �� -1
// RRRLLLLL : RRRRRRRL
// LRRLLLLL : RRRRRRLL
// LLRLLLLL : RRRRRLLL
// RRRRLLLLL : RRRRRRRRR
// LRRRLLLLL : RRRRRRRRL
// LLRRLLLLL : RRRRRRRLL
// LLLLLLLLL : RRRRRLLLL
rs = m;
re = N - (N + 1) % 2;
}
// ���� ���� ���� R ������ �ٿ��� �Ѵ�.
// x�� ������ (R + x) % (N + 1) ���� R�� ����.
for(;;){
// printf("rs : %d, re : %d\n", rs, re);
// [rs, re]
// [rs, rm] [rm + 1, re]
if(rs == re){
// ������ Ȯ����
if(rs != 0) PutBall(N - rs + 1);
return ;
}
if(re == rs + 1){
r = PutBall(N - rs);
// ���� R�� �ǰ� -1 �� �߰ų�, ���� L�� �ǰ� 1�� ��
if(r == 1) return ;
if(r == -1){ PutBall(1); return ; }
}
int rm = (rs + re) / 2;
// rm������ -1, rm + 1������ 1�� �ǵ��� ����
r = PutBall(N - rm);
if(r == -1){ rs += N - rm; re = N; }
else{ rs = 0; re = (re + N - rm) % (N + 1); }
}
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
1132 KB |
Output is correct |
2 |
Correct |
0 ms |
1132 KB |
Output is correct |
3 |
Correct |
0 ms |
1132 KB |
Output is correct |
4 |
Correct |
0 ms |
1132 KB |
Output is correct |
5 |
Correct |
0 ms |
1132 KB |
Output is correct |
6 |
Correct |
0 ms |
1132 KB |
Output is correct |
7 |
Correct |
0 ms |
1132 KB |
Output is correct |
8 |
Correct |
0 ms |
1132 KB |
Output is correct |
9 |
Correct |
0 ms |
1132 KB |
Output is correct |
10 |
Correct |
0 ms |
1132 KB |
Output is correct |
11 |
Correct |
0 ms |
1132 KB |
Output is correct |
12 |
Correct |
0 ms |
1132 KB |
Output is correct |
13 |
Correct |
0 ms |
1132 KB |
Output is correct |
14 |
Correct |
0 ms |
1132 KB |
Output is correct |
15 |
Correct |
0 ms |
1132 KB |
Output is correct |
16 |
Correct |
0 ms |
1132 KB |
Output is correct |
17 |
Correct |
0 ms |
1132 KB |
Output is correct |
18 |
Correct |
3 ms |
1132 KB |
Output is correct |
19 |
Correct |
0 ms |
1132 KB |
Output is correct |
20 |
Correct |
3 ms |
1132 KB |
Output is correct |
21 |
Correct |
0 ms |
1132 KB |
Output is correct |
22 |
Correct |
0 ms |
1132 KB |
Output is correct |
23 |
Correct |
0 ms |
1132 KB |
Output is correct |
24 |
Correct |
0 ms |
1132 KB |
Output is correct |
25 |
Correct |
0 ms |
1132 KB |
Output is correct |
26 |
Correct |
0 ms |
1132 KB |
Output is correct |
27 |
Correct |
0 ms |
1132 KB |
Output is correct |
28 |
Correct |
0 ms |
1132 KB |
Output is correct |
29 |
Correct |
0 ms |
1132 KB |
Output is correct |
30 |
Correct |
0 ms |
1132 KB |
Output is correct |
31 |
Correct |
0 ms |
1132 KB |
Output is correct |
32 |
Correct |
0 ms |
1132 KB |
Output is correct |
33 |
Correct |
0 ms |
1132 KB |
Output is correct |
34 |
Correct |
0 ms |
1132 KB |
Output is correct |
35 |
Correct |
0 ms |
1132 KB |
Output is correct |
36 |
Correct |
0 ms |
1132 KB |
Output is correct |
37 |
Correct |
0 ms |
1132 KB |
Output is correct |
38 |
Correct |
0 ms |
1132 KB |
Output is correct |
39 |
Correct |
0 ms |
1132 KB |
Output is correct |
40 |
Correct |
0 ms |
1132 KB |
Output is correct |
41 |
Correct |
0 ms |
1132 KB |
Output is correct |