88pts WA 求调
查看原帖
88pts WA 求调
366840
red_L楼主2024/8/9 16:46

Rt, #define int long long了,肯定不存在LL的问题。

#include <iostream>
#include <map>
#include <algorithm>
#define int long long
using namespace std;

const int N=100010;
int n,z,d,a,p[N],cnt,p2[N],cnt2;
map<int,int> mp,mp2,ans1,ans2;
signed main()
{
	cin>>n>>z;
	for(int i=1;i<=n;i++)
	{
		cin>>d>>a;
		if(a-d>0)
		{
			p[++cnt]=d;
			mp[d]=a;
			ans1[d]=i;
		}
		else
		{
			p2[++cnt2]=a;
			mp2[a]=d;
			ans2[a]=i;
		}
	}
	sort(p+1,p+cnt+1);
	sort(p2+1,p2+cnt2+1);
	for(int i=1;i<=cnt;i++)
	{
        z-=p[i];
		if(z<=0)
		{
			cout<<"NIE";
			return 0;
		}
		z+=mp[p[i]];
	}
	for(int i=cnt2;i>=1;i--)
	{
        z-=mp2[p2[i]];
		if(z<=0)
		{
			cout<<"NIE";
			return 0;
		}
		z+=p2[i];
	}
	cout<<"TAK"<<endl;
	for(int i=1;i<=cnt;i++) cout<<ans1[p[i]]<<" ";
	for(int i=cnt2;i>=1;i--) cout<<ans2[p2[i]]<<" ";
	return 0;
}
2024/8/9 16:46
加载中...