专栏文章
题解:P12980 [GCJ 2022 Qualification] 3D Printing
P12980题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miox2rxp
- 此快照首次捕获于
- 2025/12/03 02:33 3 个月前
- 此快照最后确认于
- 2025/12/03 02:33 3 个月前
题目大意:
有三台打印机,每个打印机有四种颜料,需要用 的颜料打印一个 ,若三台打印机均可打印的 的颜色不存在,输出
IMPOSSIBLE,否则输出四种颜料的数量。思路:
要打印出同一种颜色,肯定是每一种颜色都足够,所以我们先求出四种颜色数量的最小值,它们的总和再去和 进行比较,若不够则输出
IMPOSSIBLE,否则去删减,直到四种颜色数量加起来等于 。代码:
CPP#include<bits/stdc++.h>
#define MAXX INT_MAX-1
using namespace std;
int c,m,y,k;
int main(){
int T;
scanf("%d",&T);
for(int i=1;i<=T;i++){
int mc=MAXX,mm=MAXX,my=MAXX,mk=MAXX; // 注意要赋最大值。
for(int j=1;j<=3;j++){ // 求最小值。
scanf("%d%d%d%d",&c,&m,&y,&k);
mc=min(mc,c);
mm=min(mm,m);
my=min(my,y);
mk=min(mk,k);
}
if(mc+mm+my+mk>=1000000){
int p=mc+mm+my+mk-1000000; // 删减。
if(p>=mc){
p-=mc;
mc=0;
if(p>=mm){
p-=mm;
mm=0;
if(p>=my){
p-=my;
my=0;
if(p>=mk){
p-=mk;
mk=0;
} else{
mk-=p;
}
} else{
my-=p;
}
} else{
mm-=p;
}
} else{
mc-=p;
}
printf("Case #%d: %d %d %d %d\n",i,mc,mm,my,mk);
} else{
printf("Case #%d: IMPOSSIBLE\n",i);
}
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...