Submission #860171
Source Code Expand
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int a[100010], b[100010], x[100010], r[100010][20];
int *binary(int *seq, const int len, const int key) {
int flag, left, mid, right;
flag = 0; left = 0; right = len-1;
mid = (left+right)/2;
// printf(" %d %d %d\n", left, mid, right);
while (left <= right && flag < 2) {
if ((left+right)%2) {
if (*(seq+mid) < key) left = mid + 1;
else if (*(seq+mid) == key) { left = mid; flag++; }
else if (*(seq+mid+1) > key) right = mid - 1;
else if (*(seq+mid+1) == key) { right = mid; flag++; }
else break;
} else {
if (*(seq+mid) < key) left = mid + 1;
else if (*(seq+mid) > key) right = mid - 1;
else { right = mid; flag++; }
}
mid = (left+right)/2;
// printf(" %d %d %d\n", left, mid, right);
}
return seq+mid;
}
int main() {
int D, from, i, j, k, L, max, N, *ptr, Q, to;
scanf("%d", &N);
for (i=0;i<N;i++) scanf("%d", &x[i]);
scanf("%d%d", &L, &Q);
for (j=0;j<Q;j++) scanf("%d%d", &a[j], &b[j]);
for (i=0;i<N-1;i++) {
ptr = binary(x, N, x[i]+L);
r[i][0] = ptr-x+1;
}
r[N-1][0] = N+10;
for (k=1;k<20;k++) {
for (i=0;i<N-1;i++) {
if (r[i][k-1] == N+10) r[i][k] = N+10;
else r[i][k] = r[r[i][k-1]-1][k-1];
}
r[N-1][k] = N+10;
}
// for (i=0;i<N;i++) for (k=0;k<5;k++) printf("r[%d][%d] = %d\n", i, k, r[i][k]);
// return 0;
// printf("\n");
for (k=0;k<20;k++) {
if (r[0][k] == N) break;
}
max = k+1;
for (j=0;j<Q;j++) {
D = 0;
if (a[j]>b[j]) { from = b[j]; to = a[j]; }
else { from = a[j]; to = b[j]; }
do {
ptr = binary(r[from-1], max, to);
// printf(" %d %d %d\n", from, to, *ptr);
i = ptr-r[from-1];
k = 1;
while (i-->0) k *= 2;
D += k;
from = *ptr;
} while (*ptr < to);
printf("%d\n", D);
}
return 0;
}
Submission Info
Submission Time
2016-08-30 22:25:35+0900
Task
E - Tak and Hotels
User
k_ashiya
Language
C (GCC 5.4.1)
Score
700
Code Size
1846 Byte
Status
AC
Exec Time
161 ms
Memory
9728 KB
Compile Error
./Main.c: In function ‘main’:
./Main.c:32:2: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &N);
^
./Main.c:33:20: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
for (i=0;i<N;i++) scanf("%d", &x[i]);
^
./Main.c:34:2: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d", &L, &Q);
^
./Main.c:35:20: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
for (j=0;j<Q;j++) scanf("%d%d", &a[j], &b[j]);
^
Judge Result
Set Name
Sample
Subtask1
All
Score / Max Score
0 / 0
200 / 200
500 / 500
Status
Set Name
Test Cases
Sample
example_01.txt
Subtask1
example_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt
All
example_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt
Case Name
Status
Exec Time
Memory
example_01.txt
AC
2 ms
128 KB
subtask1_01.txt
AC
2 ms
128 KB
subtask1_02.txt
AC
2 ms
128 KB
subtask1_03.txt
AC
3 ms
256 KB
subtask1_04.txt
AC
3 ms
256 KB
subtask1_05.txt
AC
3 ms
256 KB
subtask1_06.txt
AC
3 ms
256 KB
subtask1_07.txt
AC
3 ms
256 KB
subtask1_08.txt
AC
3 ms
256 KB
subtask1_09.txt
AC
3 ms
256 KB
subtask1_10.txt
AC
3 ms
256 KB
subtask1_11.txt
AC
3 ms
256 KB
subtask1_12.txt
AC
3 ms
256 KB
subtask1_13.txt
AC
3 ms
256 KB
subtask2_01.txt
AC
144 ms
9600 KB
subtask2_02.txt
AC
158 ms
9728 KB
subtask2_03.txt
AC
140 ms
9472 KB
subtask2_04.txt
AC
69 ms
6144 KB
subtask2_05.txt
AC
92 ms
6400 KB
subtask2_06.txt
AC
100 ms
9344 KB
subtask2_07.txt
AC
149 ms
9600 KB
subtask2_08.txt
AC
161 ms
9728 KB
subtask2_09.txt
AC
156 ms
9728 KB
subtask2_10.txt
AC
159 ms
9728 KB
subtask2_11.txt
AC
149 ms
9088 KB
subtask2_12.txt
AC
124 ms
9728 KB
subtask2_13.txt
AC
102 ms
9344 KB