7-4 sdut-C语言实验-小南同学选宾馆
分数 20
全屏浏览
切换布局
作者 马新娟
单位 山东理工大学
疫情期间到淄博隔离的山大学子们受到了淄博当地家人般的照顾,于是山大的学子们疫情后仍然会坐火车到淄博转一转,体会这座城市的温暖。这不,山大的小南同学在一个周末和同学又来到了八大局买扇子,听说都是有收藏价值呢。
到了晚上了,小南跟他的同学们要选一个宾馆住下了。但是形形色色的宾馆让小南不知所措。
对于一个宾馆来说,有许多特征,比如「价格」、「舒适度」。小南会对每个特征都有一个满意度。小南会选择出满意度更高一些的宾馆。其中,「价格」对于小南来说是最重要的,其次是「舒适度」。
如果有两个宾馆,如果对「价格」的满意度相同,那么根据「舒适度」进行选择;如果有多个宾馆条件相同,输出编号最小的宾馆。
你能帮他按照他的意愿找到小南最满意的宾馆吗?
输入格式:
给出 n (n <= 5000) 代表 n 个宾馆(编号从 1 - n),随后有 n 行数据。
每行数据有两个整数,分别代表小南对「价格」、「舒适度」的满意程度,数值越大满意程度越高,满意度的范围从0 - 5000。
输出格式:
输出按照描述的条件中小南最满意的宾馆编号,如果有多个宾馆条件相同,输出编号最小的宾馆。
输入样例:
解释
4 0 1 1 0 1 1 1 0
输出样例:
3
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
栈限制
8192 KB
#include <stdio.h> #include <stdlib.h> struct binguan{ int num1; int num2; }score[5005]; int main() { int n,i; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%d %d",&score[i].num1,&score[i].num2); } int max=-1; int t; for(i=1;i<n;i++) { if(score[i].num1==max) { if(score[i].num2>score[t].num2) { t=i; } } else if(score[i].num1>max) { t=i; max=score[i].num1; } } printf("%d\n",t); return 0; }