結果
| 問題 |
No.1726 [Cherry 3rd Tune B] ジャマイカビアポン
|
| コンテスト | |
| ユーザー |
SSRS
|
| 提出日時 | 2021-10-29 21:56:32 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 308 ms / 3,000 ms |
| コード長 | 1,215 bytes |
| コンパイル時間 | 2,110 ms |
| コンパイル使用メモリ | 179,764 KB |
| 実行使用メモリ | 24,732 KB |
| 最終ジャッジ日時 | 2024-10-07 11:07:12 |
| 合計ジャッジ時間 | 7,972 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 39 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
int main(){
int N, M;
cin >> N >> M;
vector<int> P(N);
for (int i = 0; i < N; i++){
cin >> P[i];
}
vector<int> a(N), b(N);
for (int i = 0; i < N; i++){
cin >> a[i] >> b[i];
}
vector<int> c(M), d(M);
for (int i = 0; i < M; i++){
cin >> c[i] >> d[i];
}
int ans = 0;
for (int i = 0; i < 2; i++){
for (int j = 0; j < 2; j++){
vector<tuple<int, int, int>> S;
for (int k = 0; k < M; k++){
for (int l = 0; l < N; l++){
int x;
if (i == 0){
x = a[l] - c[k];
} else {
x = a[l] + c[k];
}
int y;
if (j == 0){
y = b[l] - d[k];
} else {
y = b[l] + d[k];
}
S.push_back(make_tuple(x, y, P[l]));
}
}
sort(S.begin(), S.end());
int sum = 0;
for (int k = 0; k < N * M; k++){
sum += get<2>(S[k]);
if (k == N * M - 1){
ans = max(ans, sum);
} else if (get<0>(S[k]) != get<0>(S[k + 1]) || get<1>(S[k]) != get<1>(S[k + 1])){
ans = max(ans, sum);
sum = 0;
}
}
}
}
cout << ans << endl;
}
SSRS