Submission #153965

#TimeUsernameProblemLanguageResultExecution timeMemory
153965theboatmanGift (IZhO18_nicegift)C++17
7 / 100
1080 ms85412 KiB
#include <bits/stdc++.h>

#define y1 theboatman
#define make_struct(args...) {args}

#define int long long

using namespace std;

void sub_task2(int n, int k, vector <int> &a) {
    set <pair <int, int> > s;
    for(int i = 0; i < n; i++) {
        s.insert(make_pair(-a[i], i));
    }

    vector <vector <int> > ans;
    while(s.size()) {
        auto it = *s.begin();
        s.erase(it);

        if (!s.size()) {
            cout << "-1\n";
            exit(0);
        }

        auto it1 = *s.begin();
        s.erase(it1);

        vector <int> way;

        way.push_back(-it1.first);
        way.push_back(it.second + 1);
        way.push_back(it1.second + 1);

        ans.push_back(way);

        if (it.first - it1.first < 0) {
            s.insert(make_pair(it.first - it1.first, it.second));
        }

    }

    cout << ans.size() << "\n";
    for(auto it : ans) {
        for(auto i : it) {
            cout << i << " ";
        }
        cout << "\n";
    }
}

int32_t main() {
    cin.tie(0);
    ios :: sync_with_stdio(0);

    int n, k;
    cin >> n >> k;

    vector <int> a(n);
    for(int i = 0; i < n; i++) {
        cin >> a[i];
    }

    if (k == 2) {
        sub_task2(n, k, a);
    }
    else {
        cout << "kek\n";
    }
    return 0;
}
/*
2 3 3 4 6
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...