# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
7469 | 2014-08-09T06:19:50 Z | kipa00 | 배열 탈출 (GA8_array) | C++ | 0 ms | 0 KB |
#include <cstdio> int map[2222][2222]; int dp[2222][2222]; int v(int s, int e) { return (s > e) ? 0 : (e - s + 1); } int main() { int n; scanf("%d", &n); //미친; for (i=0; i<n; ++i) { for (j=0; j<n; ++j) { scanf("%d", &map[i][j]); } } for (j=1; j<n; ++j) { dp[0][j] = dp[0][j - 1] + v(map[0][j - 1], map[0][j]); } for (i=1; i<n; ++i) { for (j=0; j<n; ++j) { int temp = dp[i - 1][j] + v(map[i - 1][j], map[i][j]); if (j != 0) { int temp2 = dp[i][j - 1] + v(map[i][j - 1], map[i][j]); if (temp > temp2) { temp = temp2; } } dp[i][j] = temp; } } printf("%d\n", dp[n - 1][n - 1]); return 0; }