QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#660914#9422. Two-star ContestEunoiayWA 0ms3600kbC++201.7kb2024-10-20 13:55:262024-10-20 13:55:26

Judging History

你现在查看的是最新测评结果

  • [2024-10-20 13:55:26]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3600kb
  • [2024-10-20 13:55:26]
  • 提交

answer

#include <bits/stdc++.h>
#define int long long

using namespace std;
using i64 = long long;

void solve() {
	int n, m, k;
	cin >> n >> m >> k;

	vector<int> s(n);
	vector p(n, vector<int>(m));
	for (int i = 0; i < n; i++) {
		cin >> s[i];
		for (int j = 0; j < m; j++) {
			cin >> p[i][j];
		}
	}

	vector<i64> l(n), r(n);
	for (int i = 0; i < n; i++) {
		int x = 0;
		for (int j = 0; j < m; j++) {
			if (p[i][j] != -1) {
				l[i] += p[i][j];
			} else {
				x += 1;
			}
		}
		r[i] = l[i] + 1LL * x * k;
	}

	vector<int> o(n);
	iota(o.begin(), o.end(), 0);
	sort(o.begin(), o.end(), [&](int i, int j) {
		if (s[i] != s[j]) {
			return s[i] < s[j];
		}
		return r[i] < r[j];
	});

	auto setToZero = [&](int i) {
		for (int j = 0; j < m; j++) {
			if (p[i][j] == -1) {
				p[i][j] = 0;
			}
		}
	};

	i64 lst = l[o[0]];
	int i = 0;
	for ( ; i < n && s[o[i]] == s[o[0]]; i++) {
		setToZero(o[i]);
	}

	i64 mxv = lst;
	int prev = i - 1;
	for (; i < n; i++) {
		int t = o[i];
		if (r[t] <= lst) {
			cout << "No\n";
			return;
		}
		if (l[t] > lst) {
			mxv = max(l[t], mxv);
			setToZero(t);
		} else {
			i64 need = lst - l[t] + 1;
			for (int j = 0; j < m; j++) {
				if (p[t][j] == -1) {
					i64 val = min(need, k);
					need -= val;
					p[t][j] = val;
				}
			}
		}
		if (s[o[i]] != s[o[prev + 1]]) {
			lst = mxv;
			prev = i - 1;
		}
	}

	cout << "Yes\n";
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			cout << p[i][j] << " \n"[j == m - 1];
		}
	}
}

signed main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	int t;
	cin >> t;

	while (t--) {
		solve();
	}

	return 0;
}

详细

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3600kb

input:

5
3 4 5
5 1 3 -1 -1
2 -1 5 -1 5
3 3 -1 -1 4
2 3 10
10000 5 0 -1
1 10 10 10
2 3 10
10 1 2 3
100 4 5 6
2 3 10
100 1 2 3
10 4 5 6
2 3 10000
100 -1 -1 -1
1 -1 -1 -1

output:

Yes
1 3 5 2
0 5 0 5
3 4 0 4
No
Yes
1 2 3
4 5 6
No
Yes
1 0 0
0 0 0

result:

wrong answer Participant cannot satisfy the constraint. (test case 1)