您的位置:首页 > 其它

1707: [Usaco2007 Nov]tanning分配防晒霜 (贪心)

2014-07-15 21:52 357 查看
#include<algorithm>
#include<iostream>
#include<cstdio>
#define inf 0x7fffffff
using namespace std;
inline int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
struct data{
int v,num;
}a[2501];
inline bool cmp(data a,data b){
return a.v<b.v;
}
int C,L,ans,l[2501],r[2501];
bool used[2501];
inline int find(int x){
int tmp=0,mn=inf;
for(int i=1;i<=C;++i){
if(used[i]||l[i]>x||r[i]<x)continue;
if(r[i]<mn){mn=r[i];tmp=i;}
}
return tmp;
}
int main(){
C=read();L=read();
for(int i=1;i<=C;++i){
l[i]=read();
r[i]=read();
}
for(int i=1;i<=L;++i){
a[i].v=read();
a[i].num=read();
}
sort(a+1,a+L+1,cmp);
for(int i=1;i<=L;++i){
while(a[i].num--){
int t=find(a[i].v);
if(t){used[t]=1;++ans;}
}
}
printf("%d",ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: