제출 #683072

#제출 시각아이디문제언어결과실행 시간메모리
683072rainboySparklers (JOI17_sparklers)C11
0 / 100
1 ms340 KiB
#include <stdio.h> #define N 100000 #define INF 0x3f3f3f3f int solve(int *xx, int n, int i, int t, int s) { int l, r; long long x; l = r = i, x = (long long) t * s * 2; while (l > 0 || r + 1 < n) if (r + 1 == n || l > 0 && xx[l] - xx[l - 1] < xx[r + 1] - xx[r]) { x -= xx[l] - xx[l - 1]; if (x < 0) return 0; l--, x += (long long) t * s * 2; } else { x -= xx[r + 1] - xx[r]; if (x < 0) return 0; r++, x += (long long) t * s * 2; } return 1; } int main() { static int xx[N]; int n, i_, t, i, lower, upper; scanf("%d%d%d", &n, &i_, &t), i_--; for (i = 0; i < n; i++) scanf("%d", &xx[i]); lower = -1, upper = INF; while (upper - lower > 1) { int s = (lower + upper) / 2; if (solve(xx, n, i_, t, s)) upper = s; else lower = s; } printf("%d\n", upper); return 0; }

컴파일 시 표준 에러 (stderr) 메시지

sparklers.c: In function 'solve':
sparklers.c:12:27: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   12 |   if (r + 1 == n || l > 0 && xx[l] - xx[l - 1] < xx[r + 1] - xx[r]) {
      |                     ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sparklers.c: In function 'main':
sparklers.c:30:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   30 |  scanf("%d%d%d", &n, &i_, &t), i_--;
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
sparklers.c:32:3: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |   scanf("%d", &xx[i]);
      |   ^~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...