QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#141162#6525. New Housescy1999WA 405ms3580kbC++20708b2023-08-17 09:08:342023-08-17 09:09:10

Judging History

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

  • [2023-08-17 09:09:10]
  • 评测
  • 测评结果:WA
  • 用时:405ms
  • 内存:3580kb
  • [2023-08-17 09:08:34]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int N=5e5+5;
struct node
{
	int a,b,c;
}h[N];
bool cmp(node a,node b)
{
	return  a.c>b.c;
}
int main()
{
	int t;
	cin>>t;
	while(t--)
	{
		int n,m;
		cin>>n>>m;
		for(int i=1;i<=n;i++)
		{
			cin>>h[i].a>>h[i].b;
			h[i].c=h[i].b-h[i].a;
		}
		sort(h+1,h+1+n,cmp);
		int tot=(m-n+1)/2;
		if(tot>=n-1&&h[n].c<0)
		{
			if(h[n-1].a+h[n].a>h[n-1].b+h[n].b)
			{
				tot=n-2;
			}
			else
			{
				tot=n;
				h[n].c=1;
			}
		}
		long long ans=0;
		for(int i=1;i<=n;i++)
		{
			if(tot&&h[i].c>0)
			{
				tot--;
				ans+=h[i].b;
			}
			else
			{
				ans+=h[i].a;
			}
		}
		cout<<ans<<'\n';
	}
	return 0;
}

詳細信息

Test #1:

score: 100
Accepted
time: 1ms
memory: 3404kb

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: 405ms
memory: 3580kb

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
2016546481
2044500908
1857678917
6815058419
2237593918
6646615756
5393412666
3532921538
5497726904
5513905900
5367943915
4705403467
2411992217
3430587752
4875673031
3921151709
1445672728
2692878616
3833748807
2716183054
850381192
6464787173
8839...

result:

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