
Untitled
By: a guest on
May 5th, 2012 | syntax:
C++ | size: 0.86 KB | hits: 12 | expires: Never
#include<iostream>
#include<algorithm>
#include<cmath>
#include<fstream>
using namespace std;
ifstream f1("outlets.in");
ofstream f2("outlets.out");
int N,K,x[12],y[12],c[12];
int i,j,u[12],v[12],l[12],ans=15;
double d[12];
void check(){
sort(d,d+N);
reverse(d,d+N);
int i,r=0,cur=0;;
for(i=0;i<N;i++)
if(l[r]<d[i])cur++;else r++;
ans=min(ans,cur);
}
main()
{f1>>N>>K;
for(i=0;i<N;i++)f1>>l[i];
for(i=0;i<N;i++)f1>>x[i]>>y[i];
for(i=0;i<K;i++)f1>>u[i]>>v[i];
for(i=K;i<N;i++)u[i]=v[i]=100000;
sort(l,l+N); reverse(l,l+N);
for(i=0;i<N;i++)c[i]=i;
do{
for(i=0;i<N;i++)
d[i]=(double)sqrt((x[i]-u[c[i]])*(x[i]-u[c[i]])+
(y[i]-v[c[i]])*(y[i]-v[c[i]]));
check();
}
while(next_permutation(c,c+N));
f2<<ans<<endl;
}