A - 水题A

题目:https://codeforces.com/problemset/problem/106/B
B. Choosing Laptop
Vasya is choosing a laptop. The shop has n laptops to all tastes.
Vasya is interested in the following properties: processor speed, ram and hdd. Vasya is a programmer and not a gamer which is why he is not interested in all other properties.
If all three properties of a laptop are strictly less than those properties of some other laptop, then the first laptop is considered outdated by Vasya. Among all laptops Vasya does not consider outdated, he chooses the cheapest one.
There are very many laptops, which is why Vasya decided to write a program that chooses the suitable laptop. However, Vasya doesn’t have his own laptop yet and he asks you to help him.
Input
The first line contains number n (1 ≤ n ≤ 100).
Then follow n lines. Each describes a laptop as speed ram hdd cost. Besides,
speed, ram, hdd and cost are integers
1000 ≤ speed ≤ 4200 is the processor’s speed in megahertz
256 ≤ ram ≤ 4096 the RAM volume in megabytes
1 ≤ hdd ≤ 500 is the HDD in gigabytes
100 ≤ cost ≤ 1000 is price in tugriks
All laptops have different prices.

Output
Print a single number — the number of a laptop Vasya will choose. The laptops are numbered with positive integers from 1 to n in the order in which they are given in the input data.

Examples
Input
5
2100 512 150 200
2000 2048 240 350
2300 1024 200 320
2500 2048 80 300
2000 512 180 150
Output
4
Note
In the third sample Vasya considers the first and fifth laptops outdated as all of their properties cannot match those of the third laptop. The fourth one is the cheapest among the laptops that are left. Thus, Vasya chooses the fourth laptop.

题意:这道题是根据三个属性和价格选择笔记本电脑,如果笔记本电脑的所有三个属性都严格低于其他笔记本电脑的属性,那么第一台笔记本电脑被Vasya认为已经过时了。在Vasya认为不过时的所有笔记本电脑中,他会选择了最便宜的笔记本电脑,并输出它的编号。

解题思路:开数组存入三个电脑得属性,任意一个与其他电脑的三个配置比较一旦有三个都比其他电脑地的情况就让它价格变得很大,因为我们筛选出不过时得电脑之后,还要比较价格 找出最便宜的笔记本电脑;然后,输出它 的编号 即可;

#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
	int n,s[101],r[101],h[101],c[101],i,min,k,j;
	scanf("%d",&n);
	for(i=0;i<n;i++)  
	{
		scanf("%d %d %d %d",&s[i],&r[i],&h[i],&c[i]);
	}
	for (i=0;i<n;i++)//一个电脑与其他电脑比较三个配置,
	{
		for (j=0;j<n;j++) 
		{	
			if(i!=j)
			{
				if ((s[i]<s[j])&&(r[i]<r[j])&&(h[i]<h[j]))//但前电脑属性有三个比其它电脑低时,就让它的价格很大(大于一千就可以)这样就不会选择它了;
				{
					c[i]=1002;
				}
			}
		}
	}
	k=-1;//小于0都可以;
	min=1002;
	for (i=0;i<n;i++)
	{
		if (c[i]<min)//找价格最少的电脑;
		{
			min=c[i];
			k=i;//记录下它的编号
		}
	}
	printf("%d\n",k+1);//这里我们之前是从零开始,所以需要+1;
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_43516113/article/details/88942959