Submission #1205828

#TimeUsernameProblemLanguageResultExecution timeMemory
1205828bronze_coderRotating Lines (APIO25_rotate)C++20
5 / 100
1 ms840 KiB
#include "rotate.h" #include <bits/stdc++.h> using namespace std; void energy(int n, vector<int> v){ int x = 50000; for(int i:v){ x = min(i,x); } for(int i=0;i<n;i++){ v[i] -= x; } vector<pair<int,int>> l; for(int i=0;i<n;i++){ l.push_back({v[i],i}); } sort(l.begin(),l.end()); if(n%2==0){ if(l[n/2].first>25000){ for(int i=0;i<=n/2;i++){ if(l[i].first>25000&&i<n/2){ rotate({l[i].second},50000-l[i].first+l[i-1].first); l[i].first = l[i-1].first; } if(i==n/2){ rotate({l[i].second},75000-l[i].first); l[i].first = 25000; } } } else if(l[n/2].first<25000){ for(int i=n-1;i>=n/2;i--){ if(l[i].first<25000&&i>n/2){ rotate({l[i].second},-l[i].first+l[i+1].first); l[i].first = l[i+1].first; } if(i==n/2){ rotate({l[i].second},25000-l[i].first); l[i].first = 25000; } } } } for(int i=1;i<=(n-1)/2;i++){ int j = i+n/2; if(l[j].first-l[i].first>25000){ rotate({l[j].second},l[i].first+75000-l[j].first); } else{ rotate({l[i].second},l[j].first-l[i].first-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...