結果
| 問題 |
No.1347 HS Railway
|
| コンテスト | |
| ユーザー |
SSRS
|
| 提出日時 | 2021-01-16 14:06:32 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,330 bytes |
| コンパイル時間 | 2,167 ms |
| コンパイル使用メモリ | 180,880 KB |
| 実行使用メモリ | 10,716 KB |
| 最終ジャッジ日時 | 2024-11-27 15:05:37 |
| 合計ジャッジ時間 | 6,612 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 33 WA * 17 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main(){
int N;
cin >> N;
vector<int> L(5), R(5);
vector<vector<int>> A(5, vector<int>(N - 1, 0));
for (int i = 0; i < 5; i++){
cin >> L[i] >> R[i];
L[i]--;
R[i]--;
for (int j = L[i]; j < R[i]; j++){
cin >> A[i][j];
}
}
int M;
cin >> M;
vector<vector<int>> s(5);
for (int i = 0; i < M; i++){
int B, S;
cin >> B >> S;
B--;
s[B].push_back(S);
}
for (int i = 0; i < 5; i++){
sort(s[i].begin(), s[i].end());
}
vector<vector<long long>> T(5, vector<long long>(N));
for (int i = 0; i < 5; i++){
T[i][0] = 0;
for (int j = 0; j < N - 1; j++){
T[i][j + 1] = T[i][j] + A[i][j];
}
}
long long ans = 0;
for (int i = 0; i < 5; i++){
for (int j = 0; j < i; j++){
int l = max(L[i], L[j]);
int r = min(R[i], R[j]);
if (l < r){
vector<int> lj, rj;
for (int x : s[j]){
lj.push_back(x + T[j][l]);
rj.push_back(x + T[j][r]);
}
for (int x : s[i]){
int li = x + T[i][l];
int ri = x + T[i][r];
int a = lower_bound(lj.begin(), lj.end(), li) - lj.begin();
int b = upper_bound(rj.begin(), rj.end(), ri) - rj.begin();
ans += b - a;
}
}
}
}
cout << ans << endl;
}
SSRS