Submission #1355213

#TimeUsernameProblemLanguageResultExecution timeMemory
1355213Trisanu_DasRotating Lines (APIO25_rotate)C++20
16 / 100
28 ms2664 KiB
#include "rotate.h"
#include <bits/stdc++.h>
using namespace std;


void energy(int n, std::vector<int> v) {
    vector<int> idx(n);
    iota(idx.begin(), idx.end(), 0);

    sort(idx.begin(), idx.end(), [&](int a, int b){
        return v[a] < v[b];
    });

    vector<int> A, B;
    for (int i = 0; i < n; i++) {
        if (i < n/2) A.push_back(idx[i]);
        else B.push_back(idx[i]);
    }

    int targetA = v[A[0]];
    for (int i : A) {
        int delta = (targetA - v[i] + 50000) % 50000;
        if (delta != 0) {
            rotate({i}, delta);
            v[i] = targetA;
        }
    }

    int targetB = (targetA + 25000) % 50000;
    for (int i : B) {
        int delta = (targetB - v[i] + 50000) % 50000;
        if (delta != 0) {
            rotate({i}, delta);
            v[i] = targetB;
        }
    }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...