QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#387184#7933. Build Permutationsanspapyrus683#WA 50ms3888kbC++171.1kb2024-04-12 08:45:122024-04-12 08:45:12

Judging History

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

  • [2024-04-12 08:45:12]
  • 评测
  • 测评结果:WA
  • 用时:50ms
  • 内存:3888kb
  • [2024-04-12 08:45:12]
  • 提交

answer

#include <bits/stdc++.h>
// #include "debugging.hpp"
using namespace std;

int main() {
    int n;
    cin >> n;
    long long total = 0;
    vector<int> arr(n);
    for (int& i : arr) {
        cin >> i;
        total += i;
    }

    long long pair_num = (long long)n * (n - 1) / 2;
    if (total * (n - 1) % pair_num != 0) {
        cout << -1 << endl;
        return 0;
    }
    long long target = total * (n - 1) / pair_num;

    map<int, vector<int>> usable_inds;
    for (int i = 0; i < n; i++) {
        usable_inds[arr[i]].push_back(i);
    }

    vector<int> perm(n);
    bool valid = true;
    for (int i = 0; i < n; i++) {
        int match = target - arr[i];
        if (usable_inds[match].empty()) {
            valid = false;
            break;
        }
        perm[i] = usable_inds[match].back();
        usable_inds[match].pop_back();
    }

    if (valid) {
        for (int i = 0; i < n - 1; i++) {
            cout << perm[i] + 1 << ' ';
        }
        cout << perm.back() + 1 << endl;
    } else {
        cout << -1 << endl;
    }
}

详细

Test #1:

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

input:

5
4 2 5 1 3

output:

2 1 4 3 5

result:

ok 

Test #2:

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

input:

3
2 2 3

output:

-1

result:

ok 

Test #3:

score: 0
Accepted
time: 50ms
memory: 3884kb

input:

199528
581552649 419782901 924554494 589802859 878336763 659984178 419820729 521791999 956262027 523946290 442086405 808419260 875183942 860794919 584899704 494193909 687014591 794119827 641706288 734029639 795387770 803653459 889799156 455122734 655375888 757642629 427654115 987811208 593072829 584...

output:

-1

result:

ok 

Test #4:

score: -100
Wrong Answer
time: 46ms
memory: 3888kb

input:

199680
774760412 315033238 665140012 402128528 221827348 923752357 281703052 551555739 483983889 622621809 949928382 909484599 413397988 424613137 353323926 392255354 551928848 464853065 860603765 618364501 423106762 752293338 551415838 898671881 969815739 150102831 644806419 333507443 379455235 981...

output:

-1

result:

wrong answer Integer -1 violates the range [1, 199680]