Lightoj1249——Chocolate Thief (模拟)

I gave some chocolates to students for their extraordinary performances. A chocolate is a cube shaped thing, which has length, width and height. All the students got the same amount of chocolates; their dimensions may be different but the volumes are same.

Now some of the students are claiming that there is one chocolate thief amongst them. So, it’s not an easy task for me to find the chocolate thief, so I am asking your help.

You are given the names of the students and the dimensions of their chocolates; you have to find the name of the chocolate thief. You can assume that there can be at most one thief and if there is a thief, he took some portion of the chocolate from another student (not students).

Input

Input starts with an integer T (≤ 100), denoting the number of test cases.

Each case starts with a line containing an integer n (2 ≤ n ≤ 100) denoting the number of students. Each of the next n lines contains a name and three integers denoting the length, width and height of his current chocolate share. Names are strings containing alphanumeric characters and the length of a name is between 1 and 20. And length, width and height will lie in the range [1, 100]. Input follows the above restrictions.

Output

For each case, print the case number first. Then if no thief is found, print ‘no thief’. Otherwise print ‘x took chocolate from y’ where x is the name of the chocolate thief, and y is the name of the person from whom the chocolate was taken.

Sample Input

2

11

atq 3 4 3

mun 10 4 1

sam1 6 6 1

sam2 18 2 1

mub 1 36 1

tan 1 4 9

sha 4 3 3

di 3 12 1

nab 2 2 9

all 8 4 1

fah 3 2 6

2

ja 10 10 10

em 2 50 10

Output for Sample Input

Case 1: mun took chocolate from all

Case 2: no thief

简单的模拟,最多两个人的巧克力不一样,排序下就行

#include <iostream>
#include <cstring>
#include <string>
#include <vector>
#include <queue>
#include <cstdio>
#include <set>
#include <cmath>
#include <algorithm>
#define INF 0x3f3f3f3f
#define MAXN 2005
#define Mod 10001
using namespace std;
struct Node
{
    string name;
    int cube;
};
Node p[MAXN];
bool cmp(Node a,Node b)
{
    return a.cube<b.cube;
}
int main()
{
    int t,cnt=1;
    scanf("%d",&t);
    while(t--)
    {
        int x,y,z,n;
        scanf("%d",&n);
        for(int i=0;i<n;++i)
        {
            cin>>p[i].name>>x>>y>>z;
            p[i].cube=x*y*z;
        }
        sort(p,p+n,cmp);
        cout<<"Case "<<cnt++<<": ";
        if(p[0].cube!=p[n-1].cube)
        {
            cout<<p[n-1].name<<" took chocolate from "<<p[0].name<<endl;
        }
        else
            cout<<"no thief"<<endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值