QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#680093#9422. Two-star ContestHTensor#WA 0ms3628kbC++232.2kb2024-10-26 19:47:472024-10-26 19:47:48

Judging History

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

  • [2024-10-26 19:47:48]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3628kb
  • [2024-10-26 19:47:47]
  • 提交

answer

#include <bits/stdc++.h>
#define dd(x) cout << #x << "\n"
#define d(x) cout << #x  << ": " << x << "\n"
#define SZ(x) ((int)(x).size())
using namespace std;
#define int long long
using pii = pair<int, int>;
using vpii = vector<pii>;
using vi = vector<int>;
using vii = vector<vector<int>>;
using a3 = array<int, 3>;
using ll = long long;
const int inf = 0x3f3f3f3f3f3f3f3fLL;

#define MULTI_TEST

struct C {
    int s, id;
    vector<int> sc;
    bool operator<(const C b) {
        return s > b.s;
    }
    // C(int _s, vector<int> _sc) : s(_s), sc(_sc) { }
};

void solve() {
    int n, m, k; cin >> n >> m >> k;
    vector<C> c(n + 1);
    for(int i = 1; i <= n; i++) {
        int s; vector<int> sc;
        cin >> s;
        for(int j = 1; j <= m; j++) {
            int x; cin >> x;
            sc.push_back(x);
        }
        c[i] = {s, i, sc};
    }

    sort(c.begin() + 1, c.end());
    vector<int> add(n + 1);
    int minx = inf, nowMinx = inf;

    for(int i = 1; i <= n; i++) {
        if(c[i].s != c[i - 1].s) {
            minx = nowMinx;
        }

        int sum = 0;
        for(auto v : c[i].sc) {
            if(v != -1) sum += v;
            else {
                add[i] += k;
            }
        }

        if(sum > minx) {
            cout << "No\n";
            return ;
        }

        add[i] = min(minx - sum, add[i]);
        nowMinx = min(nowMinx, sum + add[i]);
    }

    cout << "Yes\n";
    sort(c.begin() + 1, c.end(), [](C a, C b) { return a.id < b.id; });
    for(int i = 1; i <= n; i++) {
        for(auto v : c[i].sc) {
            if(v != -1) cout << v << " ";
            else {
                int x = min(add[i], k);
                add[i] -= x;
                cout << x << " ";
            }
        } 
        cout << "\n";
    }
}

signed main() {
    ios::sync_with_stdio(false); cin.tie(0);
#ifdef MULTI_TEST
    int T; cin >> T;
#else
    int T = 1;
#endif
    while(T--) solve();
    return 0;
}

/*
1
3 4 5
5 1 3 -1 -1
2 -1 5 -1 5
3 3 -1 -1 4



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

*/

详细

Test #1:

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

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 5 
5 5 2 5 
3 4 0 4 
No
Yes
1 2 3 
4 5 6 
No
Yes
10000 10000 10000 
10000 10000 10000 

result:

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