結果
問題 | No.865 24時間降水量 |
ユーザー | square1001 |
提出日時 | 2019-08-16 21:26:55 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 220 ms / 2,000 ms |
コード長 | 861 bytes |
コンパイル時間 | 732 ms |
コンパイル使用メモリ | 79,652 KB |
実行使用メモリ | 72,040 KB |
最終ジャッジ日時 | 2024-09-22 14:59:26 |
合計ジャッジ時間 | 2,969 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 18 |
ソースコード
#include <queue> #include <vector> #include <iostream> #include <algorithm> using namespace std; int main() { cin.tie(0); ios_base::sync_with_stdio(false); int N, Q; cin >> N; vector<int> A(N); for (int i = 0; i < N; ++i) cin >> A[i]; vector<int> sum(N - 23); for (int i = 0; i < N - 23; ++i) { for (int j = 0; j < 24; ++j) { sum[i] += A[i + j]; } } priority_queue<pair<int, int> > que; for (int i = 0; i < N - 23; ++i) { que.push(make_pair(sum[i], i)); } cin >> Q; for (int i = 0; i < Q; ++i) { int T, V; cin >> T >> V; --T; for (int j = T - 23; j <= T; ++j) { if (0 <= j && j < N - 23) { sum[j] += V - A[T]; que.push(make_pair(sum[j], j)); } } A[T] = V; while (true) { pair<int, int> u = que.top(); if (sum[u.second] == u.first) break; que.pop(); } cout << que.top().first << '\n'; } return 0; }