现在的位置: 首页 > 综合 > 正文

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

2018年04月24日 ⁄ 综合 ⁄ 共 749字 ⁄ 字号 评论关闭
#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;
}

抱歉!评论已关闭.