제출 #1353594

#제출 시각아이디문제언어결과실행 시간메모리
1353594tsetsenbilegRotating Lines (APIO25_rotate)C++20
0 / 100
0 ms836 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, b;
    vector<int> temp(n);
    for (int i = 0; i < n; i++) temp[i] = i;
    for (int i = 0; i < n; i++) a.pb({v[i], i});
    sort(a.begin(), a.end(), [](const pr& a, const pr& b) {
        return min(a.first, MAX - a.first) < min(b.first, MAX - b.first);
    });
    for (int i = n/2; i < n; i++) b.pb(a[i]);
    a.resize(n/2);
    sort(b.begin(), b.end(), [](const pr& a, const pr& b) {
        return abs(25000 - a.first) < abs(25000 - b.first);
    });
    for (int i = 0; i < n; i++) {
        if (i % 2 == 1) {
            rotate({a[i/2].second}, MAX - a[i].first);
        }
        else {
            int diff = 25000 - a[i].first;
            if (diff < 0) diff += MAX;
            rotate({b[i/2].second}, diff);
        }
    }
    // return (n / 2 * (n+1) / 2) * 25000;
}
#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...