結果
| 問題 |
No.3289 Make More Happy Connection
|
| コンテスト | |
| ユーザー |
Kyutatsu
|
| 提出日時 | 2025-10-03 22:29:47 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,092 bytes |
| コンパイル時間 | 4,771 ms |
| コンパイル使用メモリ | 334,948 KB |
| 実行使用メモリ | 24,376 KB |
| 最終ジャッジ日時 | 2025-10-03 22:30:14 |
| 合計ジャッジ時間 | 10,126 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 18 WA * 6 |
ソースコード
#include<bits/stdc++.h>
#include<atcoder/all>
using namespace std;
using ll = long long;
using P = pair<ll, ll>;
int main() {
// DP[Nセット目まで見た][前回先置き採用はL:0, R:1] := デカいスコア
int N; cin >> N;
vector<P> xy(N);
for (int i=0;i<N;i++) cin >> xy[i].first >> xy[i].second;
vector DP(N+1, vector<ll>(2, 0));
for (int i=0;i<N;i++) {
// l->l
ll mx_ll = DP[i][0] +
((xy[i].second == xy[i+1].first) ? xy[i+1].first : 0);
DP[i+1][0] = max(DP[i+1][0], mx_ll);
// l->r
ll mx_lr = DP[i][0] +
((xy[i].second == xy[i+1].second) ? xy[i+1].second : 0);
DP[i+1][1] = max(DP[i+1][1], mx_lr);
// r->l
ll mx_rl = DP[i][1] +
((xy[i].first == xy[i+1].first) ? xy[i+1].first : 0);
DP[i+1][0] = max(DP[i+1][0], mx_rl);
// r->r
ll mx_rr = DP[i][1] +
((xy[i].first == xy[i+1].second) ? xy[i+1].second : 0);
DP[i+1][1] = max(DP[i+1][1], mx_rr);
}
cout << max(DP[N][0], DP[N][1]) << endl;
}
Kyutatsu