资深光能
2705 选择供应商
题目描述 Description
某学校要进行重新装潢,一共需要三种不同的材料,现在有多个供应商可以提供所有装潢需要的材料,供应商提供三种材料的价格,价格为0表示该种供应商没有那一种材料,学校想处理的越简单越好,所以打算选择一个可以提供三种材料的某一家供应商来买,且三种材料的平均价格越低越好。
输入描述 Input Description
第一行:n,表示有n个供应商,n<=60
接下来n行:每行先有一个字符串表示供应商的名字,然后有三个数字分别表示三种不同材料的价格,价格为0表示此家供应商没有那一种材料
输出描述 Output Description
输出一行,为选中的供应商的信息,包括供应商的名字和此家三种材料的价格
样例输入 Sample Input
10
IuUjgKA 9 0 10
v 6 0 2
JBhLeCdA 8 9 1
ZPymTsna 7 8 1
DaCpcjBR 8 1 0
K 6 6 1
lh 8 3 4
YNgoOdBU 8 10 4
Lh 10 5 7
WbKuli 3 6 1
样例输出 Sample Output
WbKuli 3 6 1
#include <algorithm> #include <iostream> #include <cstdio> #include <string> using namespace std; struct gys { string mz; int a,b,c; }a[1001]; bool cmp (gys s1,gys s2) { if (s1.a!=s2.a) return s1.a<s2.a; else if (s1.b!=s2.b) return s1.b<s2.b; else if (s1.c<s2.c) return s1.c<s2.c; } int main () { int n; cin>>n; for (int i=1;i<=n;i++) { cin>>a[i].mz>>a[i].a>>a[i].b>>a[i].c; if (!(a[i].a||a[i].b||a[i].c)) { a[i].a=0; a[i].b=0; a[i].c=0; } } sort(a,a+n,cmp); cout<<a[n].mz<<" "<<a[n].a<<" "<<a[n].b<<" "<<a[n].c; return 0; }
10分
资深守护
#include<iostream>
using namespace std;
struct SHOP{
string name;
int a,b,c;
int sum(){
return a+b+c;
}
}g[66];
int main(){
int n,i,s=66666,t;
cin>>n;
for(i=1;i<=n;i++){
cin>>g[i].name>>g[i].a>>g[i].b>>g[i].c;
if(s>g[i].sum()&&(g[i].a&&g[i].b&&g[i].c)){
s=g[i].sum();
t=i;
}
}
cout<<g[t].name<<" "<<g[t].a<<" "<<g[t].b<<" "<<g[t].c;
return 0;
}
中级天翼