提出 #53533938
ソースコード 拡げる
#include <bits/stdc++.h> using namespace std; using ll = long long; #define rep(i, x) for (int i = 0; i < (x); i++) int main() { int N, D; cin >> N; vector<int> A(N); for (int i = 0; i < N; i++) { cin >> A[i]; } cin >> D; vector<int> L(D), R(D); for (int i = 0; i < D; i++) { cin >> L[i] >> R[i]; L[i]--; R[i]--; } // 左右の端から最も大きい部屋の情報を記録していって、L-Rの範囲外で最大の部屋を決定する。 vector<int> leftMaxRoom(N, 0); vector<int> rightMaxRoom(N, 0); // 左から最大値を記録 for (int i = 0; i < N; i++) { if (i == 0) { leftMaxRoom[i] = A[i]; } else { leftMaxRoom[i] = max(leftMaxRoom[i - 1], A[i]); } } // 右から最大値を記録 for (int i = N - 1; i >= 0; i--) { if (i == N - 1) { rightMaxRoom[i] = A[i]; } else { rightMaxRoom[i] = max(rightMaxRoom[i + 1], A[i]); } } // 出力 for (int i = 0; i < D; i++) { int maxOutside = 0; if (L[i] > 0) maxOutside = max(maxOutside, leftMaxRoom[L[i] - 1]); if (R[i] + 1 < N) maxOutside = max(maxOutside, rightMaxRoom[R[i] + 1]); cout << maxOutside << endl; } return 0; }
提出情報
提出日時 | |
---|---|
問題 | A10 - Resort Hotel |
ユーザ | ryoh1004 |
言語 | C++ 23 (gcc 12.2) |
得点 | 1000 |
コード長 | 1256 Byte |
結果 | AC |
実行時間 | 133 ms |
メモリ | 4968 KiB |
ジャッジ結果
セット名 | Sample | All | ||||
---|---|---|---|---|---|---|
得点 / 配点 | 0 / 0 | 1000 / 1000 | ||||
結果 |
|
|
セット名 | テストケース |
---|---|
Sample | sample01.txt |
All | max00.txt, random00.txt, random01.txt, random02.txt, random03.txt, random04.txt, sample01.txt |
ケース名 | 結果 | 実行時間 | メモリ |
---|---|---|---|
max00.txt | AC | 133 ms | 4968 KiB |
random00.txt | AC | 80 ms | 4468 KiB |
random01.txt | AC | 85 ms | 3872 KiB |
random02.txt | AC | 92 ms | 4424 KiB |
random03.txt | AC | 123 ms | 4744 KiB |
random04.txt | AC | 90 ms | 4588 KiB |
sample01.txt | AC | 1 ms | 3488 KiB |