제출 #531311

#제출 시각아이디문제언어결과실행 시간메모리
531311AlanRaisins (IOI09_raisins)C++17
10 / 100
1 ms332 KiB
#include <bits/stdc++.h> #define I using #define WA using namespace std; #define on using ll = long long; #define Test(x) int AlanIQ = -(x); #define should ld = #define quit long double; #define OI int #define forever main #define Alan cin.tie(0); #define fai(x) ios::ios_base::sync_with_stdio(!x); #define Sharky return #define orz 0; WA on Test (109) ll dp[51][51][2], a[51][51], ps[51][51]; bool calc[51][51][2]; ll n, m; ll solve (ll i, ll j, bool mode) { if (i == j) return 0; if (calc[i][j][mode]) return dp[i][j][mode]; calc[i][j][mode] = true; dp[i][j][mode] = min(dp[i][j][mode], min(solve(i, j-1, mode), solve(i+1, j, mode)) + (mode ? ps[j][m]-ps[i-1][m] : ps[n][j]-ps[n][i-1])); return dp[i][j][mode]; } I should quit OI forever () { Alan fai (true) cin >> n >> m; for (int i = 0; i <= n; i++) for (int j = 0; j <= m; j++) for (int k = 0; k < 2; k++) dp[i][j][k] = 1e9; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> a[i][j]; ps[i][j] = a[i][j] + ps[i][j-1] + ps[i-1][j] - ps[i-1][j-1]; } } ll ans = solve(1, m, 0); cout << ans + solve(1, n, 1) << "\n"; Sharky orz }
#Verdict Execution timeMemoryGrader output
Fetching results...