結果
| 問題 |
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;
}
square1001