Submission #1355217

#TimeUsernameProblemLanguageResultExecution timeMemory
1355217Trisanu_DasRotating Lines (APIO25_rotate)C++20
0 / 100
0 ms836 KiB
#include <bits/stdc++.h>
#include "rotate.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;
    A.push_back(idx[0]);
    int cur = v[idx[0]];

    for (int i = 1; i < n; i++) {
        int id = idx[i];
        int x = v[id];

        int delta = (x - cur + 50000) % 50000;

        if (delta != 0) {
            rotate(A, delta);
            cur = x;
        }

        A.push_back(id);
    }

    vector<int> B;
    vector<int> A2;

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

    int target = (cur + 25000) % 50000;
    int delta = (target - cur + 50000) % 50000;

    if (delta != 0 && !B.empty()) {
        rotate(B, delta);
    }
}
#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...