結果
問題 |
No.2095 High Rise
|
ユーザー |
|
提出日時 | 2022-10-07 23:45:36 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 185 ms / 2,000 ms |
コード長 | 586 bytes |
コンパイル時間 | 1,689 ms |
コンパイル使用メモリ | 173,824 KB |
実行使用メモリ | 25,052 KB |
最終ジャッジ日時 | 2024-06-22 16:21:42 |
合計ジャッジ時間 | 4,011 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
import std; void main(){ auto a = readln.split.to!(long[]); auto N = a[0]; auto M = a[1]; long[][] A; for(auto n = 0; n < N; n++){ A ~= readln.split.to!(long[]); } if(N == 1){ writeln(0); return; } auto cost = new long[][](N + 1, M); for(auto n = 0; n < N; n++){ long min_cost = cost[n].minElement; for(auto m = 0; m < M; m++){ if(cost[n][m] == min_cost){ cost[n + 1][m] = min_cost + A[n][m]; }else{ cost[n + 1][m] = min(min_cost + A[n][m] + A[n - 1][m], cost[n][m] + A[n][m]); } } } //stderr.writeln(cost); writeln(cost[$ - 1].minElement); }