Submission #531327

#TimeUsernameProblemLanguageResultExecution timeMemory
531327AlanRaisins (IOI09_raisins)C++17
10 / 100
76 ms26424 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][51][51], a[51][51], ps[51][51];
ll n, m;

ll solve (ll i, ll j, ll k, ll l) {
	if (i == j && k == l) return 0;
	return dp[i][j][k][l] ? dp[i][j][k][l] : dp[i][j][k][l] = min({i==j?1e9:(solve(i,j-1,k,l)+solve(j,j,k,l)), i==j?1e9:(solve(i+1,j,k,l)+solve(i,i,k,l)), k==l?1e9:(solve(i,j,k+1,l)+solve(i,j,k,k)), k==l?1e9:(solve(i,j,k,l-1)+solve(i,j,l,l))}) + ps[j][l]-ps[j][k-1]-ps[i-1][l]+ps[i-1][k-1];
}

I should quit OI forever () {
	Alan fai (true)
	cin >> n >> m;
	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];
		}
	}
	cout << solve(1, n, 1, m) << "\n";

	Sharky orz
}
#Verdict Execution timeMemoryGrader output
Fetching results...