답안 #61243

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
61243 2018-07-25T12:54:02 Z KLPP Aliens (IOI16_aliens) C++14
컴파일 오류
0 ms 0 KB
#include "aliens.h"
#include<algorithm>
#include<iostream>
#include<vector>
#include<stdio.h>
using namespace std;
#define INF 1000000000000000000
typedef pair<long long int,long long int> pii;
vector<pair<long long int,long long int> >arr;
long long int DP[5000][5000];
long long int cost[5000][5000];
int p;
long long sq2(int x){
	if(x>0)return x*x;
	return 0;
}
bool cmp(pii a, pii b){
	if(a.first==b.first){
		if(a.second>b.second)return true;
		return false;
	}
	if(a.first<b.first)return true;
	return false;
}
long long int min(long long int a, long long int b){
	if(a<b)return a;
	return b;
}
long long take_photos(int n, int m, int k, int r[], int c[]) {

	pair<long long int,long long int>points[n];
	for(int i=0;i<n;i++){
		points[i]=pair<long long int,long long int>(r[i],c[i]);
		if(r[i]>c[i])swap(points[i].first,points[i].second);
	}
	sort(points,points+n,cmp);
	long long int cnt=-1;
	for(int i=0;i<n;i++){
		if(points[i].second>cnt){
			cnt=points[i].second;
			arr.push_back(points[i]);
			//printf("%lld %lld \n",points[i].first,points[i].second);
		}
	}
	p=arr.size();
	for(int i=0;i<p;i++){
		for(int j=i;j<p;j++){
			cost[i][j]=points[j].second-points[i].first+1;
			cost[i][j]*=cost[i][j];
			if(i>0){
				cost[i][j]-=sq2(points[i-1].second-points[i].first+1);
			}
			//cout<<cost[i][j]<<" ";
		}//cout<<endl;
	}
	for(int i=0;i<=k;i++){
		for(int j=0;j<=p;j++){
			DP[j][i]=INF;
		}
	}
	DP[0][0]=0;
	for(int photo=1;photo<=k;photo++){
		for(int i=0;i<=p;i++){
			for(int j=0;j<i;j++){
				DP[i][photo]=min(DP[i][photo],DP[j][photo-1]+cost[j][i-1]);
			}
		}
	}
	long long int ans=INF;
	for(int i=0;i<=k;i++)ans=min(ans,DP[p][i]);
	/*for(int i=0;i<=k;i++){
		for(int j=0;j<=p;j++){
			if(DP[j][i]==INF)cout<<-1<<" ";
			else cout<<DP[j][i]<<" ";
		}cout<<endl;
	}*/
	return ans;
}

Compilation message

/tmp/ccADbbzz.o: In function `main':
grader.cpp:(.text.startup+0xdf): undefined reference to `take_photos(int, int, int, std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status