68分,求助啊!(调了一天)可关
查看原帖
68分,求助啊!(调了一天)可关
763299
Storm_Lightning楼主2024/10/19 23:58
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,z;
struct node
{
	int d,a,cha,id;
}xue[100010];
bool cmp(node x,node y) 
{
	if((x.a-x.d)*(y.a-y.d)<0) 
	{
		return x.a-x.d>0;
	}
	else if(x.a-x.d<0) 
	{
		return x.a-x.d>0;
	}
	else 
	{
		return x.d<y.d;
	}
}
signed main()
{
	cin>>n>>z;
	for(int i=1;i<=n;i++)
	{
		cin>>xue[i].d>>xue[i].a;
		xue[i].cha=xue[i].a-xue[i].d;
		xue[i].id=i;
	}
	sort(xue+1,xue+n+1,cmp);
	for(int i=1;i<=n;i++)
	{
		z-=xue[i].d;
		if(z<=0)
		{
			cout<<"NIE";
			return 0;
		}
		z+=xue[i].a;
	}
	cout<<"TAK\n";
	for(int i=1;i<=n;i++)
	{
		cout<<xue[i].id<<' ';
	}
	return 0;
}
2024/10/19 23:58
加载中...