Submission #1201911

#TimeUsernameProblemLanguageResultExecution timeMemory
1201911TriseedotComparing Plants (IOI20_plants)C++20
0 / 100
0 ms580 KiB
#include "plants.h"
#include <bits/stdc++.h>
using namespace std;
#define len(v) (int) (v.size())

int n, k;
vector<int> r;
vector<int> val;
void init(int K, vector<int> R) {
    r = R;
    k = K;
    n = len(r);
    val.resize(n);

    for (int cur = n - 1; cur >= 0; cur--) {
        vector<int> idx;
        for (int i = 0; i < n; i++) {
            if (r[i] == 0) idx.push_back(i);
        }
        int mx = 0;
        for (int i = 0; i < len(idx); i++) {
            int dist;
            if (i == 0) {
                dist = idx[i] + n - idx.back();
            }
            else {
                dist = idx[i] - idx[i - 1];
            }
            if (dist >= k) {
                mx = idx[i];
                break;
            }
        }
        val[mx] = cur;
        r[mx] = 2 * n;
        for (int i = (mx - 1 + n) % n, cnt = 0; cnt < k - 1; i = (i - 1 + n) % n, cnt++) {
            r[i]--;
        }
    }

    for (int i = 0; i < n; i++) {
        cout << val[i] << ' ';
    }
    cout << '\n';
}

int compare_plants(int x, int y) {
    if (val[x] < val[y]) return -1;
	return 1;
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...