Submission #1354336

#TimeUsernameProblemLanguageResultExecution timeMemory
1354336tsetsenbilegRotating Lines (APIO25_rotate)C++20
11 / 100
29 ms3360 KiB
#include "rotate.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
using ll = long long;
using ld = long double;
using pr = pair<int, int>;
const int MOD = 1e9+7, MAXA = 1e6, MAX = 50000;

void energy(int n, vector<int> v){
    vector<pr> a(n);
    for (int i = 0; i < n; i++) a[i] = {v[i], i};
    sort(a.begin(), a.end());
    deque<pr> l, r;
    int inde = 0;
    while (inde < n && a[inde].first < 25000) l.push_back(a[inde++]);
    while (inde < n) r.push_front(a[inde++]);
    int cnt = 0;
    while (cnt < n/2) {
        cnt++;
        int cur, ind;
        if (l.size() > r.size()) {
            cur = l.front().first;
            ind = l.front().second;
            l.pop_front();
        }
        else {
            cur = r.front().first;
            ind = r.front().second;
            r.pop_front();
        }
        int diff = 50000 - cur;
        rotate({ind}, diff);
    }
    while (!l.empty() || !r.empty()) {
        int cur, ind;
        if (l.size() > r.size()) {
            cur = l.back().first;
            ind = l.back().second;
            l.pop_back();
        }
        else {
            cur = r.back().first;
            ind = r.back().second;
            r.pop_back();
        }
        int diff;
        if (cur > 25000) diff = 75000 - cur;
        else diff = 25000 - cur;
        rotate({ind}, diff);
    }
} 
#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...