選夫婿1-1569

選夫婿1

Time Limit: 1000 ms Memory Limit: 32768 KiB

Problem Description

    傾國傾城的大家閨秀潘小姐要選夫婿啦!武林中各門各派,武林外各大戶人家,聞訊紛紛前來,強勢圍觀。前來參與競選的男生藏龍臥虎,高手雲集,才子遍佈,帥哥紛紜,更不乏富二代,官二代,可謂聲勢空前。

    每個人參與競選的帥哥除了進行一段激情洋溢的求婚演講以外,還要報上自己姓名、身高和體重,以及個人簡歷。最後再進行文武選拔,最後奪魁者方能得到潘小姐的芳心。

       潘小姐不愛名利,只看人,第一關就是身高和體重要合格,即必須在其要求的範圍內,否則直接排除在外,不允許參加下一輪的選拔。

       作爲一個程序員,你沒有錢也沒有權,擅長的也就是編程了。潘小姐也發現了這一點,所以把首輪根據身高體重進行選拔的任務交給了你,如果完成的好,你可以直接進入下一輪選拔,你笑了。

Input

        潘小姐給你了所有報名男生的信息。輸入數據的第一行是一個正整數N(0 < N < 1000)。然後N行數據,每行包含三部分,用空格隔開。第一部分是報名者的姓名name(長度小於20的字符串),然後是整數身高h(0 < h < 300),第三部分是整數體重w (0 < w < 200)。

最後一行是四個整數a,b,c,d.表示身高的合格範圍是[a,b],體重的合格範圍是[c,d](0 < a < b < 200, 0 < c < d < 300)。

 

Output

        你需要把合格的男生信息按照身高從低到高輸出,格式跟輸入一樣,也是每行三個信息,共N行,如果身高相同則按體重從輕到重輸出,若沒有合格人選則輸出No,具體格式見樣例。

 

Sample Input

8
武大郎 70 40
西門慶 180 70
李逵 160 150
燕青 175 69
魯智深 180 100
武松 180 75
小泉純一狼 30 20
孫二孃 169 60
165 190 60 90

Sample Output

孫二孃 169 60
燕青 175 69
西門慶 180 70
武松 180 75

Hint

 

Source

tongjiantao 

疑惑:我開始用的是兩個sort函數,先遍歷身高排序,再在這個的基礎上遍歷體重排序,結果就是WA,很費解???

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
struct tt{
	char name[20];
	int h;
	int w;
}st[1000],str[1000];
bool cmp(tt x,tt y){
	if(x.h!=y.h){
		return x.h<y.h;
	}
	return x.w<y.w;
}

int main(){
	int n;
	int i;
	int h1,h2,w1,w2;
	int flag=0;
	int m=0;
	scanf("%d", &n);
	for(i=0;i<n;i++){
		scanf("%s %d %d",st[i].name,&st[i].h,&st[i].w);
	}
	scanf("%d %d %d %d",&h1,&h2,&w1,&w2);
	
	for(i=0;i<n;i++){
		if(st[i].h>=h1&&st[i].h<=h2&&st[i].w>=w1&&st[i].w<=w2){
			flag=1;
			str[m++]=st[i];
		}
	}
	sort(str,str+m,cmp);
	if(flag==0){
		printf("No\n");
	}else{
		for(i=0;i<m;i++){
			printf("%s %d %d\n",str[i].name,str[i].h,str[i].w);
		}
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章