Submission #1208496

#TimeUsernameProblemLanguageResultExecution timeMemory
1208496kunzaZa183Rotating Lines (APIO25_rotate)C++20
0 / 100
3096 ms840 KiB
#include "rotate.h" #include <bits/stdc++.h> using namespace std; using ll = long long; void energy(int n, vector<int> v) { const ll mod = 50000; vector<int> all(n); iota(all.begin(), all.end(), 0); sort(all.begin(), all.end(), [&](int a, int b) { return v[a] < v[b]; }); // vector<bool> used(n); deque<int> left; vector<int> right; for (auto a : all) left.push_back(a); while (left.size() >= 1) { int cur = left.front(); // used[left.front()] = 1; left.pop_front(); while (!left.empty()) { // int cur2 = left.back(); // if (used[left.back()]) { // left.pop_back(); // continue; // } if (v[left.back()] - v[cur] > mod / 2) { right.push_back(left.back()); left.pop_back(); } else break; } if (left.size() >= right.size()) { if (left.empty()) continue; rotate({cur}, v[left.back()] - mod / 2 - v[cur]); // used[left.back()] = 1; left.pop_back(); } else { if (right.empty()) continue; rotate({cur}, v[right.back()] + mod / 2 - v[cur]); right.pop_back(); } } }
#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...