結果
問題 | No.1454 ツブ消ししとるなEasy |
ユーザー |
![]() |
提出日時 | 2021-07-11 15:14:16 |
言語 | C (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 19 ms / 2,000 ms |
コード長 | 1,320 bytes |
コンパイル時間 | 173 ms |
コンパイル使用メモリ | 30,208 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-07-02 03:05:19 |
合計ジャッジ時間 | 1,218 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 16 |
ソースコード
#include<stdio.h>long long int h[100005], l;int comp_h(long long int a, long long int b){if (h[a] < h[b])return 1;elsereturn -1;}void swap_h(long long int a, long long int b){long long int f = h[a];h[a] = h[b];h[b] = f;return;}void push(long long int ne){h[l] = ne;long long int p = l;l++;for (; p > 0; p = (p - 1) / 2)if (comp_h((p - 1) / 2, p) > 0)swap_h((p - 1) / 2, p);return;}long long int pop(){l--;swap_h(0, l);long long int p = 0;for (;;){if (2 * p + 2 < l){if (comp_h(2 * p + 1, 2 * p + 2) > 0){if (comp_h(p, 2 * p + 2) > 0)swap_h(p, 2 * p + 2);p = 2 * p + 2;}else{if (comp_h(p, 2 * p + 1) > 0)swap_h(p, 2 * p + 1);p = 2 * p + 1;}}else if (2 * p + 1 < l){if (comp_h(p, 2 * p + 1) > 0)swap_h(p, 2 * p + 1);p = 2 * p + 1;}elsebreak;}return h[l];}int main(){int n, m, x, y;scanf("%d %d %d %d", &n, &m, &x, &y);int i;long long int a[100005];for (i = 0; i < n; i++)scanf("%lld", &a[i]);l = 0;for (i = 0; i < n; i++)push(a[i]);for (i = 0; i < n; i++)a[i] = pop();a[n] = -1;long long int ans = 0;for (i = 0; i<m && a[i]>y; i++)ans += a[i];if (a[m] >= x)printf("Handicapped\n");elseprintf("%lld\n", ans);return 0;}