結果
問題 |
No.3094 Stapler
|
ユーザー |
👑 |
提出日時 | 2025-03-09 14:53:06 |
言語 | C (gcc 13.3.0) |
結果 |
RE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,629 bytes |
コンパイル時間 | 361 ms |
コンパイル使用メモリ | 28,032 KB |
実行使用メモリ | 7,848 KB |
最終ジャッジ日時 | 2025-04-04 10:37:49 |
合計ジャッジ時間 | 6,141 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 61 RE * 10 |
コンパイルメッセージ
main.c: In function ‘main’: main.c:9:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 9 | scanf("%d", &N); | ^~~~~~~~~~~~~~~ main.c:10:9: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 10 | scanf("%d", &Q); | ^~~~~~~~~~~~~~~ main.c:29:17: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 29 | scanf("%d", &t); | ^~~~~~~~~~~~~~~ main.c:31:25: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 31 | scanf("%d %d", &l, &r); | ^~~~~~~~~~~~~~~~~~~~~~ main.c:59:25: warning: ignoring return value of ‘scanf’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 59 | scanf("%d", &q); | ^~~~~~~~~~~~~~~
ソースコード
#include <stdio.h> #define SIZE 250 #define NUM 400 int main() { int i, N, Q; scanf("%d", &N); scanf("%d", &Q); int bn, bl[NUM], br[NUM]; for (bn = 0, i = 0; 1; i = br[bn++]) { bl[bn] = i; br[bn] = i + SIZE; if (br[bn] >= N) { br[bn] = N; break; } } br[++bn] = N + 1; int h, k, ans = N, A[100001] = {}, block[NUM][2], t, L[100001], R[100001], l, r, q; for (k = 0; k < bn; k++) { block[k][0] = 0; block[k][1] = br[k] - bl[k]; } for (h = 1; h <= Q; h++) { scanf("%d", &t); if (t == 1) { scanf("%d %d", &l, &r); L[h] = l; R[h] = r; k = l / SIZE; for (i = l; i < br[k] && i < r; i++) { if (A[i] == 0) { block[k][1]--; if (block[k][0] == 0) ans--; } A[i]++; } if (i < r) { for (k++; br[k] <= r; i = br[k++]) { if (block[k][0] == 0) ans -= block[k][1]; block[k][0]++; } if (i < r) { for (; i < r; i++) { if (A[i] == 0) { block[k][1]--; if (block[k][0] == 0) ans--; } A[i]++; } } } } else if (t == 2) { scanf("%d", &q); l = L[q]; r = R[q]; k = l / SIZE; for (i = l; i < br[k] && i < r; i++) { A[i]--; if (A[i] == 0) { block[k][1]++; if (block[k][0] == 0) ans++; } } if (i < r) { for (k++; br[k] <= r; i = br[k++]) { block[k][0]--; if (block[k][0] == 0) ans += block[k][1]; } if (i < r) { for (; i < r; i++) { A[i]--; if (A[i] == 0) { block[k][1]++; if (block[k][0] == 0) ans++; } } } } } else { printf("%d\n", ans); } } fflush(stdout); return 0; }