Submission #1366976

#TimeUsernameProblemLanguageResultExecution timeMemory
1366976uranhishigIMO (EGOI25_imo)C++20
0 / 100
0 ms344 KiB
#include <bits/stdc++.h>
using namespace std;

int n, m, k;
vector<vector<int>> a;

void solve2() {
	int s0 = 0, s1 = 0;
	for (int i = 0; i < m; i++) {
		s0 += a[0][i];
		s1 += a[1][i];
	}
	if (s0 < s1) swap(a[0], a[1]);
	sort(a[0].begin(), a[0].end());
	sort(a[1].begin(), a[1].end(), greater<int>());
	int ans = 0, x0 = 0, x1;
	for (int i = 1; i <= m; i++) {
		x0 += a[0][i - 1];
		x1 = 0;
		if (s0 - x0 < s1) break;
		ans = max(ans, i);
		for (int j = 1; j <= m; j++) {
			x1 += a[1][j - 1];
			if (s0 - x0 >= s1 - x1 + j * k) {
				ans = max(ans, i + j);
			}
		}
	}
	cout << n * m - ans << endl;
}

int main() {
	cin >> n >> m >> k;
	a.resize(n, vector<int>(m));
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cin >> a[i][j];
		}
	}
	if (n == 2) {
		solve2();
	}
}
/*
2 2 7
7 4
7 0

2 2 1
0 1
1 0
*/
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...