제출 #1267182

#제출 시각아이디문제언어결과실행 시간메모리
1267182elotelo966휴가 (IOI14_holiday)C++20
0 / 100
5091 ms1672 KiB
#include"holiday.h"
#include <bits/stdc++.h>
using namespace std;
 
//#define int long long
#define OYY LLONG_MAX
#define faster ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
#define fi first
#define se second
#define FOR for(int i=1;i<=n;i++)
#define mid (start+end)/2
#define pb push_back
#define lim 100005

typedef long long lo;

int n,start,d;

int dizi[lim];

inline int cal(int x,int y){
	int sol=abs(x-start);
	int sag=abs(y-start);
	if(sol<sag)return sol*2+sag;
	return sol+sag*2;
}

long long int findMaxAttraction(int n, int start, int d, int attraction[]) {
	start++;
	
	FOR{
		dizi[i]=attraction[i-1];
	}
	
	lo cev=0;
	
	for(int i=1;i<=start;i++){
		for(int j=start;j<=n;j++){
			int git=cal(i,j);
			if(git>d)continue;
			int kalan=d-git;
			vector<lo> tut;
			for(int o=i;o<=j;o++)tut.pb(dizi[o]);
			sort(tut.rbegin(),tut.rend());
			lo cur_cev=0;
			for(int o=0;o<min(kalan,(int)tut.size());o++)cur_cev+=(lo)tut[o];
			cev=max(cev,cur_cev);
		}
	}
	
	return cev;
}

//~ int32_t main(){
	//~ faster
	//~ cin>>n>>start>>d;
	
	//~ start++;
	
	//~ FOR{
		//~ cin>>dizi[i];
	//~ }
	
	//~ int cev=0;
	
	//~ for(int i=1;i<=start;i++){
		//~ for(int j=start;j<=n;j++){
			//~ int git=cal(i,j);
			//~ if(git>d)continue;
			//~ int kalan=d-git;
			//~ vector<int> tut;
			//~ for(int o=i;o<=j;o++)tut.pb(dizi[o]);
			//~ sort(tut.rbegin(),tut.rend());
			//~ int cur_cev=0;
			//~ for(int o=0;o<min(kalan,(int)tut.size());o++)cur_cev+=tut[o];
			//~ cout<<i<<" "<<j<<" "<<git<<" "<<cur_cev<<" "<<kalan<<endl;
			//~ cev=max(cev,cur_cev);
		//~ }
	//~ }
	
	//~ cout<<cev<<'\n';
	
	//~ return 0;
//~ }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...