QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#713284#9580. 插排串联shift#WA 10ms6464kbC++201.4kb2024-11-05 18:51:002024-11-05 18:51:00

Judging History

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

  • [2024-11-05 18:51:00]
  • 评测
  • 测评结果:WA
  • 用时:10ms
  • 内存:6464kb
  • [2024-11-05 18:51:00]
  • 提交

answer

#include <bits/stdc++.h>

using i64 = long long;
using u64 = unsigned long long;

void solve() {
    int n;
    std::cin >> n;

    n += 1;

    std::vector<int> r(n);
    r[0] = 2200;
    std::vector<std::vector<int>> adj(n);
    for(int i = 1; i < n; i ++ ) {
        int f, v;
        std::cin >> f >> v;
        adj[f].push_back(i);
        r[i] = v;
    }
    
    std::vector<i64> w(n);
    auto dfs = [&](auto &self, int x, int p) -> void {
        if(not adj[x].size()) {
            w[x] = r[x];
            r[x] = -1;
            return;
        }
        for(auto y : adj[x]) {
            if(y == p) continue;
            self(self, y, x);
            w[x] += w[y];
        }

    };

    dfs(dfs, 0, -1);
    if(r[0] < w[0]) {
        std::cout << "NO" << '\n';
        return;
    }
    std::vector<int> a, b;
    for(int i = 1; i < n; i ++ ) {
        if(r[i] == -1) continue;
        a.push_back(r[i]);
        b.push_back(w[i]);
    }

    std::sort(a.begin(), a.end());
    std::sort(b.begin(), b.end());

    for(int i = 0; i < n; i ++ ) {
        if(a[i] < b[i]) {
            std::cout << "NO" << '\n';
            return;
        }
    }
    std::cout << "YES" << '\n';
}

int main() {
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    int T = 1;
    // std::cin >> T;

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

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 3624kb

input:

5
0 500
1 700
1 400
2 100
2 200

output:

YES

result:

ok single line: 'YES'

Test #2:

score: 0
Accepted
time: 0ms
memory: 3604kb

input:

5
0 500
1 700
1 400
2 100
2 300

output:

NO

result:

ok single line: 'NO'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3568kb

input:

4
0 1000
1 800
1 500
2 300

output:

YES

result:

ok single line: 'YES'

Test #4:

score: 0
Accepted
time: 0ms
memory: 3864kb

input:

3
0 1000000000
0 1000000000
0 147483647

output:

NO

result:

ok single line: 'NO'

Test #5:

score: 0
Accepted
time: 0ms
memory: 3632kb

input:

3
0 1000000000
0 1000000000
0 147483648

output:

NO

result:

ok single line: 'NO'

Test #6:

score: 0
Accepted
time: 6ms
memory: 6464kb

input:

64855
0 69748768
0 450926072
1 699448620
3 918617238
4 106189312
1 617660017
5 31691747
2 373080156
0 363984605
0 937885158
10 300431710
8 485372487
1 661592241
1 836709079
13 895424425
1 824052267
9 887752080
15 952380329
0 595041339
14 632034017
18 752444470
4 311747126
2 289503382
11 213029500
23...

output:

NO

result:

ok single line: 'NO'

Test #7:

score: -100
Wrong Answer
time: 10ms
memory: 6200kb

input:

48750
0 3785579
1 2060436
1 1095269
2 3527822
3 2748694
3 452943
5 427867
3 191538
8 2095981
1 3895276
10 3771233
3 3121067
10 416014
9 1443750
1 699351
8 933800
7 361157
16 423718
10 785063
11 2772134
16 3135666
2 1404821
15 417197
12 1560818
4 2709779
13 2489882
24 1070706
23 2364628
22 3451655
8 ...

output:

NO

result:

wrong answer 1st lines differ - expected: 'YES', found: 'NO'