結果

問題 No.3289 Make More Happy Connection
ユーザー Rumain831
提出日時 2025-10-03 21:30:16
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 848 bytes
コンパイル時間 668 ms
コンパイル使用メモリ 80,784 KB
実行使用メモリ 7,916 KB
最終ジャッジ日時 2025-10-03 21:30:24
合計ジャッジ時間 6,168 ms
ジャッジサーバーID
(参考情報)
judge1 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 2 WA * 22
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<iostream>
#include<vector>
#include<set>
#include<algorithm>
using namespace std;
using ll = long long;
void chmax(ll& a, ll b){a=max(a, b);}

int main(void){
  int n; cin >> n;
  vector<ll> x(n), y(n);
  for(int i=0; i<n; i++) cin >> x[i] >> y[i];
  vector<ll> dp(2);
  dp[0]=(x[0]==y[0]?x[0]:0);
  dp[1]=(x[0]==y[0]?x[0]:0);
  for(int i=1; i<n; i++){
    vector<ll> old(2);
    swap(old, dp);
    ll ad1, ad2=(x[i]==y[i]?x[i]:0);
    //x[i-1] x[i] y[i]
    ad1=(x[i-1]==x[i]?x[i]:0);
    chmax(dp[0], old[1]+ad1+ad2);
    //x[i-1] y[i] x[i]
    ad1=(x[i-1]==y[i]?y[i]:0);
    chmax(dp[1], old[1]+ad1+ad2);
    //y[i-1] x[i] y[i]
    ad1=(y[i-1]==x[i]?x[i]:0);
    chmax(dp[0], old[0]+ad1+ad2);
    //y[i-1] y[i] x[i]
    ad1=(y[i-1]==y[i]?y[i]:0);
    chmax(dp[1], old[1]+ad1+ad2);
  }
  cout << max(dp[0], dp[1]) << endl;
  return 0;
}
0