제출 #1206539

#제출 시각아이디문제언어결과실행 시간메모리
1206539StefanSebezRotating Lines (APIO25_rotate)C++20
13 / 100
3094 ms1428 KiB
#include "rotate.h" #include <vector> #include<bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define ll long long #define ld long double const int N=50000; vector<array<int,2>>a; int n; vector<int>v; ll Calc(){ ll res=0; for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){ res+=min(abs(v[i]-v[j]),N-abs(v[i]-v[j])); } } return res; } void energy(int n1, std::vector<int> v1){ v=v1;n=n1; /*for(int i=0;i<n;i++) a.pb({v[i],i}); sort(a.begin(),a.end()); for(int i=0;i<n;i++){ if(i<=(n-1)/2){ rotate({a[i][1]},a[0][0]-a[i][0]); } else{ rotate({a[i][1]},a[0][0]-a[i][0]+N); } }*/ ll res=Calc(); for(int i=0;i<n;i++){ while(1){ v[i]=(v[i]+1)%N; ll x=Calc(); if(x<=res){ v[i]=(v[i]-1+N)%N; break; } res=x; rotate({i},1); } } }
#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...