제출 #1347283

#제출 시각아이디문제언어결과실행 시간메모리
1347283053thousandRotating Lines (APIO25_rotate)C++20
5 / 100
3095 ms836 KiB
#include "rotate.h"
#include <vector>
#include<math.h>
using namespace std;

void energy(int n, vector<int> v){
    vector<int>send;
    long long int fp=v[0],sp=(v[0]+25000)%50000,fpc=1,spc=0;
    for(int i=v.size()-1;i>0;i--) send.push_back(i);
    for(int i=1;i<v.size();i++){
    	long long int ip=0;
    	int mb=fp-v[i];
    	for(int h=i;h<v.size();h++){
    		int fpp=min(abs(fp-v[h]),50000-abs(fp-v[h])),spp=min(abs(sp-v[h]),50000-abs(sp-v[h])),np=min(abs(sp-v[h]-mb),50000-abs(sp-v[h]-mb));
    		ip+=(spc*np)-(fpp*fpc+spc*spp);
		}
		if(ip>0){
			rotate(send,fp-v[i]);
			fpc++;
		}
		else {
			rotate(send,sp-v[i]);
			spc++;
		}
		send.pop_back();
	}
	for(int i=0;i<n;i++)send.push_back(i);
	if(abs(fpc-spc)>=2) rotate(send,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...