Submission #1306318

#TimeUsernameProblemLanguageResultExecution timeMemory
1306318stephitRotating Lines (APIO25_rotate)C++20
100 / 100
35 ms2788 KiB
#include <bits/stdc++.h>
using namespace std;
const int N = 50000;
#define fi first
#define se second

void rotate(std::vector<int> t, int x);

void energy(int n, vector<int> v) {
    vector<pair<int, int>> a;
    for (int i = 0; i < n; i++) a.push_back({v[i], i});
    sort(a.begin(), a.end());

    int cnt = 0, p = 0;
    for (int i = 0; i < n; i++) if (a[i].fi < N/2) cnt++;
    
    if (cnt < n - cnt) 
    {
        for (int i = 0; i < n / 2; i++) {
            rotate({a[i].se}, - a[i].fi + a[i + n / 2].fi - N/2 + N*2);
        }
    } 
    else
    {
        for (int i = n - 1; i >= n - n / 2; i--) {
            rotate({a[i].se}, - a[i].fi + a[i - n / 2].fi + N/2 + N*2);
        }
    }
}
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...