为什么,我加了个long long就全错了,不加还可以得到30分
查看原帖
为什么,我加了个long long就全错了,不加还可以得到30分
286752
h1910819075楼主2021/5/1 23:54

代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N=200000+100;
typedef long long ll;
vector<int> c;
struct node{
	int a,b;
}cow[N];

inline int cmp(node s1,node s2)
{
	if(s1.a==s2.a)
		return s1.b<s2.b;
	else
		return s1.a<s2.a;
}

int main()
{
	int n,m;
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		int x;
		scanf("%d",&x);
		c.push_back(x);
	}
	for(int i=1;i<=m;i++)
		scanf("%d%d",&cow[i].a,&cow[i].b);
	sort(c.begin(),c.end());
	sort(cow+1,cow+1+m,cmp);
	
	int ans=0;
	for(int i=1;i<=m;i++)
	{
		int pos=lower_bound(c.begin(),c.end(),cow[i].a)-c.begin();
		if(c[pos]<=cow[i].b)
		{
			ans++;
			c.erase(c.begin()+pos);
		}
		if(c.size()==0)
			break;
	}
	printf("%d\n",ans);
	return 0;
}
2021/5/1 23:54
加载中...