题解:P12034 [USTCPC 2025] Introduction to ICPC
题目传送门
这道题说难不难,说简单也不简单。关键在于对题目的理解。\
我因为罚时算错被WA了三次\
先放上罚时的计算公式
然后就是模拟了,伪代码如下
int 金,银,铜,荣誉;
cin >> g >> s >> b >> h;
for(int i = 1;i<=g+s+b+h;i++){
输入 金>>银>>铜>>荣誉
}
排序(首指针,尾指针,比较函数);
输出每种奖牌的上下界
return 0;
AC代码
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;