#include <bits/stdc++.h>
#include "rotate.h"
using namespace std;
using ll = long long;
void energy(int n, vector<int> v) {
const ll mod = 50000;
vector<pair<int, int>> vpii;
for (int i = 0; i < v.size(); i++) vpii.emplace_back(v[i], i);
sort(vpii.begin(), vpii.end());
vector<int> sth;
vector<bool> used(n);
for (int i = 0; i < vpii.size(); i++) {
if (used[vpii[i].second]) continue;
int more = 0, les = 0;
vector<pair<int, int>> close, far;
for (int j = i + 1; j < v.size(); j++) {
if (used[vpii[j].second]) continue;
if (vpii[j].first - vpii[i].first > mod / 2) {
far.push_back(vpii[j]);
} else {
close.push_back(vpii[j]);
}
}
if (close.empty() && far.empty()) break;
// for (auto a : far) cout << a.first << ", " << a.second << " ";
// cout << "\n";
// for (auto a : close) cout << a.first << ", " << a.second << " ";
// cout << "\n";
if (close.size() > far.size()) {
// cout << v[0] << " " << v[1] << "\n";
rotate(
{vpii[i].second},
((close.back().first + mod / 2) % mod - vpii[i].first + mod) % mod);
used[close.back().second] = 1;
used[vpii[i].second] = 1;
} else {
rotate({vpii[i].second},
((far.front().first + mod / 2) % mod - vpii[i].first + mod) % mod);
used[far.front().second] = 1;
used[vpii[i].second] = 1;
}
}
return;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |