专栏文章

题解:P12034 [USTCPC 2025] Introduction to ICPC

P12034题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipnnb6n
此快照首次捕获于
2025/12/03 14:57
3 个月前
此快照最后确认于
2025/12/03 14:57
3 个月前
查看原文

题目传送门

这道题说难不难,说简单也不简单。关键在于对题目的理解。
我因为罚时算错被WA了三次
先放上罚时的计算公式 x297+180000(x为题目通过数)x*297+180000(x为题目通过数) 然后就是模拟了,伪代码如下
CPP
int 金,银,铜,荣誉;
	cin >> g >> s >> b >> h;
	for(int i = 1;i<=g+s+b+h;i++){
        输入 金>>银>>铜>>荣誉
	}
	排序(首指针,尾指针,比较函数);
	输出每种奖牌的上下界
	return 0;
AC代码
CPP
int g,s,b,h;
	cin >> g >> s >> b >> h;
	for(int i = 1;i<=g+s+b+h;i++){
		cin >> a[i].tg >> a[i].fs;
	}
	sort(a+1,a+1+g+s+b+h,cmp);
	cout << a[g].tg <<" "<< a[g].fs << " ";
	if(a[g+1].fs==0){
		cout << a[g+1].tg+1 << " " << 180000+(a[g+1].tg+1)*279 << "\n";
	}else{
		cout <<a[g+1].tg <<" "<< a[g+1].fs-1 << "\n";
	}
	cout << a[g+s].tg <<" "<< a[g+s].fs << " ";
	if(a[g+s+1].fs==0){
		cout << a[g+s+1].tg+1 << " " << 180000+(a[g+s+1].tg+1)*279 << "\n";
	}else{
		cout <<a[g+s+1].tg <<" "<< a[g+s+1].fs-1 << "\n";
	}
	cout << a[g+s+b].tg <<" "<< a[g+s+b].fs << " ";
	if(a[g+s+b+1].fs==0){
		cout << a[g+s+b+1].tg+1 << " " << 180000+(a[g+s+b+1].tg+1)*279 << "\n";
	}else{
		cout <<a[g+s+b+1].tg <<" "<< a[g+s+b+1].fs-1 << "\n";
	}
	return 0;

评论

0 条评论,欢迎与作者交流。

正在加载评论...