제출 #673434

#제출 시각아이디문제언어결과실행 시간메모리
673434rainboyNaan (JOI19_naan)C11
100 / 100
544 ms100736 KiB
#include <stdio.h> #define N 2000 #define M 2000 int main() { static int ww[N][M + 1], ii[N]; static long long pp[N][N + 1], qq[N][N + 1]; int n, m, g, g_, g1, i, i_, i1, j, d, tmp; scanf("%d%d", &n, &m); for (i = 0; i < n; i++) for (j = 1; j <= m; j++) { scanf("%d", &ww[i][j]); ww[i][j] += ww[i][j - 1]; } for (i = 0; i < n; i++) { pp[0][0] = 0, qq[0][0] = 1, pp[0][n] = m, qq[0][n] = 1; for (g = 1, j = 0; g < n; g++) { while (j < m && (long long) ww[i][j + 1] * n < (long long) ww[i][m] * g) j++; d = ww[i][j + 1] - ww[i][j]; pp[i][g] = (long long) j * n * d + (long long) ww[i][m] * g - (long long) ww[i][j] * n, qq[i][g] = n * d; } } for (i = 0; i < n; i++) ii[i] = i; for (g = 0; g + 1 < n; g++) { g1 = g; for (g_ = g + 1; g_ < n; g_++) { i1 = ii[g1], i_ = ii[g_]; if (pp[i1][g + 1] / qq[i1][g + 1] > pp[i_][g + 1] / qq[i_][g + 1] || pp[i1][g + 1] / qq[i1][g + 1] == pp[i_][g + 1] / qq[i_][g + 1] && pp[i1][g + 1] % qq[i1][g + 1] * qq[i_][g + 1] > pp[i_][g + 1] % qq[i_][g + 1] * qq[i1][g + 1]) g1 = g_; } tmp = ii[g], ii[g] = ii[g1], ii[g1] = tmp; } for (g = 0; g + 1 < n; g++) printf("%lld %lld\n", pp[ii[g]][g + 1], qq[ii[g]][g + 1]); for (g = 0; g < n; g++) printf("%d ", ii[g] + 1); printf("\n"); return 0; }

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

naan.c: In function 'main':
naan.c:32:136: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   32 |    if (pp[i1][g + 1] / qq[i1][g + 1] > pp[i_][g + 1] / qq[i_][g + 1] || pp[i1][g + 1] / qq[i1][g + 1] == pp[i_][g + 1] / qq[i_][g + 1] && pp[i1][g + 1] % qq[i1][g + 1] * qq[i_][g + 1] > pp[i_][g + 1] % qq[i_][g + 1] * qq[i1][g + 1])
      |                                                                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
naan.c:11:2: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   11 |  scanf("%d%d", &n, &m);
      |  ^~~~~~~~~~~~~~~~~~~~~
naan.c:14:4: warning: ignoring return value of 'scanf' declared with attribute 'warn_unused_result' [-Wunused-result]
   14 |    scanf("%d", &ww[i][j]);
      |    ^~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...