제출 #1347316

#제출 시각아이디문제언어결과실행 시간메모리
1347316053thousandRotating Lines (APIO25_rotate)C++20
#0-2 실행 중
3095 ms836 KiB
#include "rotate.h"
#include <vector>
#include<math.h>
using namespace std;
int ag(int x,int y){
	return min(abs(x-y),50000-abs(x-y));
}
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 np=(mb+v[h]+50000)%50000;
    		int ag1=ag(fp,v[h]),ag2=ag(sp,v[h]),ag3=ag(fp,np),ag4=ag(sp,np);
    		ip+=(ag3*fpc+ag4*spc)-(ag1*fpc+ag2*spc);
		}
		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...