結果
問題 |
No.1948 足し算するだけのパズルゲーム(1)
|
ユーザー |
![]() |
提出日時 | 2022-05-20 22:43:26 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 135 ms / 2,000 ms |
コード長 | 1,507 bytes |
コンパイル時間 | 3,951 ms |
コンパイル使用メモリ | 233,320 KB |
実行使用メモリ | 17,408 KB |
最終ジャッジ日時 | 2024-09-20 09:02:38 |
合計ジャッジ時間 | 6,778 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
コンパイルメッセージ
main.cpp: In function 'int main()': main.cpp:43:30: warning: 'ahw' may be used uninitialized [-Wmaybe-uninitialized] 43 | if(vvviDP[h][w][0] > ahw || vvviDP[h][w][1] > ahw){ main.cpp:12:8: note: 'ahw' was declared here 12 | ll ahw; | ^~~
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; //const long nPrime = 1000000007; //const long nPrime = 998244353; typedef long long ll; int main() { ll h,w; cin >> h >> w; vector<vector<vector<ll>>> vvviDP(h+1,vector<vector<ll>>(w+1,vector<ll>(2,0))); ll ahw; for(ll i = 1; i <= h; i++){ for(ll j = 1; j <= w; j++){ ll a; cin >> a; if(i == 1 && j == 1){ vvviDP[i][j][0] = a; continue; } if(i == h && j == w){ ahw = a; } if(vvviDP[i][j-1][0] > a){ vvviDP[i][j][0] = max(vvviDP[i][j][0], vvviDP[i][j-1][0]+a); } else { vvviDP[i][j][1] = max(vvviDP[i][j][1], vvviDP[i][j-1][0]); } if(vvviDP[i][j-1][1] > a){ vvviDP[i][j][1] = max(vvviDP[i][j][1], vvviDP[i][j-1][1]+a); } if(vvviDP[i-1][j][0] > a){ vvviDP[i][j][0] = max(vvviDP[i][j][0], vvviDP[i-1][j][0]+a); } else { vvviDP[i][j][1] = max(vvviDP[i][j][1], vvviDP[i-1][j][0]); } if(vvviDP[i-1][j][1] > a){ vvviDP[i][j][1] = max(vvviDP[i][j][1], vvviDP[i-1][j][1]+a); } } } if(vvviDP[h][w][0] > ahw || vvviDP[h][w][1] > ahw){ cout << "Yes" << endl; }else { cout << "No" << endl; } return 0; }