QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#386600#6525. New HousesDDTWA 76ms3688kbC++231.4kb2024-04-11 18:31:312024-04-11 18:31:31

Judging History

你现在查看的是最新测评结果

  • [2024-04-11 18:31:31]
  • 评测
  • 测评结果:WA
  • 用时:76ms
  • 内存:3688kb
  • [2024-04-11 18:31:31]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int INF=0x3f3f3f3f;
#define endl '\n'
#define x first
#define y second
typedef long long ll;
typedef pair<int,int> PII;
PII a[500010];
bool cmp(PII a,PII b)
{
	if(max(a.x,a.y)==max(b.x,b.y))
		return a.x>b.x;
	return max(a.x,a.y)>max(b.x,b.y);
}
void solve()
{
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
		cin>>a[i].x>>a[i].y;
	sort(a+1,a+n+1,cmp);
	ll ans=0,p=m-n,t=0,l,r;
	for(int i=1;i<=n;i++)
	{
		if(a[i].x>=a[i].y)
		{
			ans+=a[i].x;
			t++;
			l=a[i].x;
			r=a[i].y;
		}		
		else
		{
			if(p>0)
			{
				ans+=a[i].y;
				p--;
			}
			else 
			{
				ans+=a[i].x;
				t++;
				l=a[i].x;
				r=a[i].y;
			}
		}
	}
	if(t==1)
	{
		ans-=l;
		ans+=r;
	}
	ll ans1=0;
	p=m-n;
	int pp=0;
	if(t==1)
	{
		for(int i=n;i>=1;i--)
			if(a[i].y>a[i].x)
			{
				pp=i;
				ans1+=a[i].x;
			}
		if(pp)
		{
			for(int i=1;i<=n;i++)
			{
				if(i==pp)continue;
				if(a[i].x>=a[i].y)
					ans1+=a[i].x;
				else
				{
					if(p>0)
					{
						ans1+=a[i].y;
						p--;
					}
					else 
						ans1+=a[i].x;
				}
			}		
			cout<<max(ans1,ans)<<endl;
			return;
		}
		else
		cout<<ans<<endl;
	}
	else
	cout<<ans<<endl;
}
int main()
{
	ios::sync_with_stdio(false);
	ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);
	int t;
	cin>>t;
	while(t--)
	{
		solve();
	}
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3688kb

input:

3
4 5
1 100
100 1
100 1
100 1
2 2
1 10
1 10
2 3
100 50
1 1000

output:

400
2
1050

result:

ok 3 number(s): "400 2 1050"

Test #2:

score: -100
Wrong Answer
time: 76ms
memory: 3624kb

input:

100000
6 11
191141536 365120521
799679686 648574232
102602909 467685128
405440859 796808887
384858152 191995380
433392826 195648471
5 13
831367906 510447872
795639287 575551283
811207605 176441088
240156289 946977042
133416463 721098873
5 5
806744021 699586200
630510306 637827160
49223781 641709297
...

output:

3247545200
4106290713
2653993029
5122532137
5570513606
2207637584
2044500908
1857678917
6815058419
2237593918
6646615756
5638337819
3690874076
5497726904
5513905900
5404435094
4705403467
2411992217
3430587752
5098767681
3921151709
1271949960
2692878616
3833748807
2504931416
974485573
6464787173
8839...

result:

wrong answer 6th numbers differ - expected: '2031887824', found: '2207637584'