結果
問題 |
No.3289 Make More Happy Connection
|
ユーザー |
|
提出日時 | 2025-10-03 21:41:49 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 291 ms / 2,000 ms |
コード長 | 1,210 bytes |
コンパイル時間 | 3,492 ms |
コンパイル使用メモリ | 251,300 KB |
実行使用メモリ | 12,800 KB |
最終ジャッジ日時 | 2025-10-03 21:42:11 |
合計ジャッジ時間 | 8,723 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:36:10: warning: ‘*x[0]’ may be used uninitialized [-Wmaybe-uninitialized] 36 | if(x[0]==y[0]){dp[0][0]=x[0];dp[0][1]=x[0];} | ~~~^ main.cpp:36:16: warning: ‘*y[0]’ may be used uninitialized [-Wmaybe-uninitialized] 36 | if(x[0]==y[0]){dp[0][0]=x[0];dp[0][1]=x[0];} | ~~~^
ソースコード
#include<iostream> #include<atcoder/all> #include<vector> #include<algorithm> #include<bits/stdc++.h> #include<math.h> #include <numeric> #include <random> #include<map> #include<queue> #include<deque> #include <bitset> #include<stack> #include<set> using namespace std; using namespace atcoder; #define int long long using mint=modint998244353; double pi=3.141592653589793128; //cout << fixed << setprecision(10); #define all(x) (x).begin(),(x).end() #define rep(i,n) for (int i=0;i<(n);++i) #define prep(i,n) for (int i=1;i<=(n);++i) #define ep(i,j,n) for (int i=j+1;i<=(n);++i) long long INF = 900000000000000; int mod=998244353; signed main(){ int n;cin>>n; int dp[n][2]; rep(i,n){ rep(j,2)dp[i][j]=0; } int x[n],y[n];int ans=0; rep(i,n)cin>>x[i]>>y[i]; if(x[0]==y[0]){dp[0][0]=x[0];dp[0][1]=x[0];} prep(i,n-1){ if(x[i]==x[i-1])dp[i][0]=dp[i-1][1]+x[i]; if(y[i]==y[i-1])dp[i][1]=dp[i-1][0]+y[i]; if(x[i]==y[i-1])dp[i][0]=dp[i-1][0]+x[i]; if(y[i]==x[i-1])dp[i][1]=dp[i-1][1]+y[i]; rep(j,2){ rep(k,2){ dp[i][k]=max(dp[i][k],dp[i-1][j]); } } if(x[i]==y[i]){ rep(j,2)dp[i][j]+=x[i]; } } cout<<max(dp[n-1][0],dp[n-1][1]); }