计蒜客--泥塑课

小米是一个幼儿园老师,每学期的泥塑课上,她都会给每个学生发不超过 250250 立方厘米的等量橡皮泥,教大家做泥塑。在上课过程中,她发现每个班都恰好有一个小朋友会去抢另一个小朋友的橡皮泥,于是她决定,在正式开始做泥塑前,让大家把手里的橡皮泥都捏成一个立方体,并且测量手里捏好的橡皮泥的长、宽和高。这样,她就可以知道谁被谁抢了橡皮泥了。

输入格式

小米老师在不同的学期可能会带一个班或者同时带多个班,因此输入数据可能有一组或者多组。

每组输入数据的第一行为一个整数 nn,表示了这个班的小朋友数,之后 nn 行每行包括了由空格分隔的三个整数和一个字符串,那个字符串表示了小朋友的名字,前面三个整数则是这个学生手里橡皮泥块的长、宽、高数据。按照幼儿园的规定,每个班最多有 99 个小朋友,最少也要有 22 个小朋友,每个小朋友在学籍系统中的名称不超过 88 个字符长。当出现一个班级的小朋友数为 -11 时,表示没有更多的班级了。

输出格式

输出行数与小米老师带的班级数相同,形式为X took clay from Y.,具体请参考样例输出。

样例输入

3
10 10 2 Jill
5 3 10 Will
5 5 10 Bill
4
2 4 10 Cam
4 3 7 Sam
8 11 1 Graham
6 2 7 Pam
-1

样例输出

Bill took clay from Will.
Graham took clay from Cam.

题解:结构体排序
 1 #include <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <vector>
 6 #include <cstdlib>
 7 #include <iomanip>
 8 #include <cmath>
 9 #include <ctime>
10 #include <map>
11 #include <set>
12 #include <queue>
13 using namespace std;
14 #define lowbit(x) (x&(-x))
15 #define max(x,y) (x>y?x:y)
16 #define min(x,y) (x<y?x:y)
17 #define MAX 100000000000000000
18 #define MOD 1000000007
19 #define pi acos(-1.0)
20 #define ei exp(1)
21 #define PI 3.141592653589793238462
22 #define INF 0x3f3f3f3f3f
23 #define mem(a) (memset(a,0,sizeof(a)))
24 typedef long long ll;
25 ll gcd(ll a,ll b){
26     return b?gcd(b,a%b):a;
27 }
28 bool cmp(int x,int y)
29 {
30     return x>y;
31 }
32 const int N=10005;
33 struct node
34 {
35     int l,h,w;
36     string name;
37 }a[10];
38 bool cmp1(node x,node y)
39 {
40     return x.l*x.h*x.w<y.l*y.h*y.w;
41 }
42 int main()
43 {
44     std::ios::sync_with_stdio(false);
45     int n;
46     while(cin>>n&&n!=-1){
47         for(int i=0;i<n;i++){
48             cin>>a[i].l>>a[i].h>>a[i].w>>a[i].name;
49         }
50         sort(a,a+n,cmp1);
51         cout<<a[n-1].name<<" took clay from "<<a[0].name<<"."<<endl;
52     }
53     return 0;
54 }
posted @ 2017-08-02 18:22  wydxry  阅读(333)  评论(0编辑  收藏  举报
Live2D