Submission #1205368

#TimeUsernameProblemLanguageResultExecution timeMemory
1205368AbdulazizHanyRotating Lines (APIO25_rotate)C++20
100 / 100
32 ms2792 KiB
#include "rotate.h"
#include <bits/stdc++.h>
using namespace std;
void energy(int n, vector<int> v)
{
    if(n==2){
        if(v[0]<v[1]){
            if(v[1]-v[0]>=25000)rotate({0},(v[1]-v[0])-25000);
            else{
                rotate({1},((25000+v[0])-v[1]));
            }
        }else{
            if (v[0] - v[1] >= 25000)
                rotate({1}, (v[0] - v[1])-25000);
            else
            {
                rotate({0}, ((25000 + v[1]) - v[0]));
            }
        }
        return;
    }
    vector<pair<int, int>> arr;
    for (int i = 0; i < v.size(); i++)
        arr.push_back({v[i], i});
    sort(arr.begin(), arr.end());
    for (int i = 0; i < (n+1) / 2; i++)
    {
        int x = arr[i].first + 25000;
        x %= 50000;
        int y = arr[i + ((n) / 2)].first, need;
        if (y <= x)
            need = x - y;
        else
        {
            need=50000-(y-x);
        }
        rotate({arr[i + ((n) / 2)].second}, need);
    }
}
#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...