RE#3,但有负数检查
查看原帖
RE#3,但有负数检查
169594
Heart_Of_Iron_4楼主2024/7/30 11:24
#include<bits/stdc++.h>
using namespace std;
#define int long long 
int f[1545141],n,t1,t2,m;
vector<int> a[1545141];
signed main()
{
	scanf("%lld",&m);
	for(int i=1;i<=m;++i)
	{
		scanf("%lld%lld",&t1,&t2);
		if(t1==0)t1=1;
		if(t2==0)t2=1;
		if(t1<1)t1=1;
		if(t2>=1&&t2>=t1)a[t1].push_back(t2);
		n=max(n,t2);
		n=max(n,t1);
	}
	for(int i=1;i<=n;++i)
	{
		f[i+1]=max(f[i],f[i+1]);
		for(auto j:a[i])
		{
			if(j>0)f[j+1]=max(f[j+1],f[i]+j-i+1);
		}
	}
	printf("%lld",f[n+1]);
	return 0;
}
2024/7/30 11:24
加载中...