結果
問題 | No.1715 Dinner 2 |
ユーザー |
👑 |
提出日時 | 2021-10-10 10:04:32 |
言語 | C (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,305 bytes |
コンパイル時間 | 205 ms |
コンパイル使用メモリ | 30,464 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-23 03:51:44 |
合計ジャッジ時間 | 1,251 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 35 WA * 3 |
ソースコード
#include <stdio.h>void chmin(int* a, int b){if (*a > b) *a = b;}void chmax(int* a, int b){if (*a < b) *a = b;}int main(){const int sup = 1 << 30;int i, N, D, P[1001], Q[1001], min[2] = {sup, sup}, argmin[2];scanf("%d %d", &N, &D);for (i = 1; i <= N; i++) {scanf("%d %d", &(P[i]), &(Q[i]));if (min[0] > P[i]) {min[1] = min[0];argmin[1] = argmin[0];min[0] = P[i];argmin[0] = i;} else if (min[1] > P[i]) {min[1] = P[i];argmin[1] = i;}}int j, k, ans = -(1 << 30), tmp, tmpp;for (i = 1; i <= N; i++) {for (j = 1; j <= N; j++) {if (j == i) continue;tmp = Q[i] + Q[j] - P[i] - P[j];if (tmp >= 0) {tmpp = -P[i];chmin(&tmpp, -P[i] + Q[i] - P[j]);chmax(&ans, tmpp);} else if (D % 2 == 0) {tmpp = tmp * (D / 2) - Q[j];if (argmin[0] != j) chmax(&tmpp, tmp * (D / 2 - 1) - P[i] + P[j] - min[0]);else chmax(&tmpp, tmp * (D / 2 - 1) - P[i] + P[j] - min[1]);chmin(&tmpp, tmp * (D / 2 - 1) - P[i]);chmax(&ans, tmpp);} else {tmpp = tmp * (D / 2) - P[i];if (argmin[0] != i) chmax(&tmpp, tmp * (D / 2) - min[0]);else chmax(&tmpp, tmp * (D / 2) - min[1]);chmin(&tmpp, tmp * (D / 2) - Q[j]);chmax(&ans, tmpp);}}}printf("%d\n", ans);fflush(stdout);return 0;}