有C个人去晒太阳(1≤C≤2500),每个人各自能够忍受的阳光强度有一个最小值和一个最大值,太大就晒伤了,太小没感觉。 刚开始的阳光的强度非常大,所有人都承受不住,然后人就得涂抹防晒霜,防晒霜的作用是让阳光照在身上的阳光强度固定为某个值。 那么为了不让人烫伤,又不会没有效果。 给出了L(1≤L≤2500)种防晒霜。每种的数量和固定的阳光强度也给出来了,每个人只能抹一瓶防晒霜,请你求出最后能够享受晒太阳的人有几个。
第一行两个整数C L,表示人数和防晒霜的种类数。 接下来C行,每行两个整数,表示每个人能够忍受的阳光强度范围。两个整数均在1到1000范围内。 接下来L行,每行两个整数,表示每种防晒霜的固定的阳光强度和数量。两个整数均在1到1000范围内。
一个整数,表示最后能够享受晒太阳的人有几个。
蒟蒻代码:
#include"bits/stdc++.h"
using namespace std;
struct T{
int a, b;
}t[2505];
struct F{
int s, num;
}f[2505];
int c,l,cnt,p;
bool cmp1(T x,T y){
if(x.b==y.b)
return (x.a<y.a);
return (x.b<y.b);
}bool cmp2(F x,F y){
return (x.s<y.s);
}int main(){
cin>>c>>l;
for(int i=1;i<=c;i++)
cin>>t[i].a>>t[i].b;
sort(t+1,t+c+1,cmp1);
for (int i=1;i<=l;i++)
cin>>f[i].s>>f[i].num;
sort(f+1,f+l+1,cmp2);
for(int i=1;i<=c;i++){
for(int j=1;j<=l;j++){
if(f[j].num>0&&f[j].s>=t[i].a&&f[j].s<=t[i].b)f[j].num--;cnt++;break;
}
}cout<<cnt;
return 0;
}
看正解就是这样,样例也过了,但就是WA。