Submission #1208492

#TimeUsernameProblemLanguageResultExecution timeMemory
1208492kunzaZa183Rotating Lines (APIO25_rotate)C++20
5 / 100
1 ms840 KiB
#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[i]) continue;
    int more = 0, les = 0;
    vector<pair<int, int>> close, far;
    for (int j = i + 1; j < v.size(); j++) {
      if (used[j]) 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 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...