小 I 的小姐姐 SDUT水题

小 I 的小姐姐


Problem Description

小 I 去天津玩啦,一路上,他跟他的同学发生了许多有趣的事。
当他们路过天津外国语学院时,他发现了许多小姐姐,他眼花缭乱,甚至不知道该去找哪个小姐姐聊天。
怎么办怎么办!
于是他想到了你,他拍了一张照片给你,你发现照片里一共有 n 个小姐姐(序号从 0 到 n - 1),每个小姐姐都有自己的风格,可以按特征划分出 3 个特征值 w1 , w2 , w3 ,你知道小 I 特别喜欢 w1 特征值高的小姐姐,不太看重 w3 ,于是你对于每个特征都赋予一个权重,分别对应为0.7 0.2 0.1,你能帮小 I 找出来他发来的这张照片里他最喜欢的小姐姐吗?
Input

多组输入,对于每组输入:
第一行给出 n (n <= 5000) ,之后有 n 行数。
每行数有三个数 w1, w2, w3,表示三个特征值。
所有整数及结果都在整型范围内,不存在权值和相等的情况。
Output

n 个小姐姐中权值和最高的序号。
Sample Input

3
1 5 10
5 1 10
10 5 1
Sample Output

2
典型的结构体 + 排序的问题
此题时间复杂度要求不高因此用冒泡排序即可

#include <stdio.h>
#include <stdlib.h>
struct data
{
    int w1,w2,w3;
    double sum;
}st[5005],t;
int main()
{
    int n,i;
    while(~scanf("%d",&n))
    {
        for(i = 0;i <= n - 1; i++)
        {
            scanf("%d %d %d",&st[i].w1,&st[i].w2,&st[i].w3);
            st[i].sum = st[i].w1*0.7 + st[i].w2*0.2+st[i].w3*0.1;
        }
        double max = st[0].sum;
        int p = 0;
        for(i = 1;i <= n - 1; i++)
        {
            if(st[i].sum>max)
            {
                max=st[i].sum;
                p=i;
            }
        }
        printf("%d\n",p);
    }
    return 0;
}

没有什么可以总结的,简单的水题。

猜你喜欢

转载自blog.csdn.net/king9666/article/details/88197800