JAVA C~K要找女朋友了!!!

C~K要找女朋友了!!!

Time Limit: 1000 ms Memory Limit: 131072 KiB

Problem Description

临近11.11,C~K看见周围的朋友一个个的都脱单或者正准备脱单了,C~K也想要找一个女朋友了(听说国家会分配?)。MeiK听说了这件事情,表
示C~K终于开悟了,所以他整理了一份候选人名单给C~K。可是C~K心里有自己心动女生的身高区间和年龄限制,所以他想把符合条件的女生
的信息给筛选出来,但是这可是难住了C~K,事关C~K的幸福,你能帮帮他吗?
ps:由于MeiK比较傻,所以名单里可能会有重复的女生的信息,若信息重复,则第一次输入为有效信息。

Input

多组输入。
第一行输入MeiK的候选人名单里有N个人(N<100000)。
第二行输入四个整数a,b,c,d。分别表示C~K心动女生的身高的最小值和最大值,年龄的最小值和最大值。(题目保证a<=b,c<=d)
接下来输入N行,每行表示一个女生的信息(姓名,身高,年龄,联系方式)

ps:联系方式不超过11个字符。

Output


对于每一组输入,第一行输出一个n,表示符合条件的女生的数量。
接下来的n行,每一行输出一个符合条件的女生的信息。
输出顺序按身高从低到高排序,若身高相同,则按年龄从高到底排序,若年龄也相同,则按照输入顺序输出。

Sample Input

4
160 170 20 22
女神1 161 19 11111
女神2 167 20 22222
女神2 167 20 22222
女神3 163 21 33333

Sample Output

2
女神3 163 21 33333
女神2 167 20 22222


import java.util.*;
class People{
	String ch[], ch1;
	String b[] = new String[10005];
	int k = 0;
	public People(String ch1, String[] ch) {
		this.ch1 = ch1;
		this.ch = ch;
	}
	public void fit(int n) {
		String a[] = ch1.split(" ");
		for(int i = n - 1; i >= 0; i--) {
			String c[] = ch[i].split(" ");
			if(c[1].compareTo(a[0]) >= 0 && c[1].compareTo(a[1]) <= 0 && c[2].compareTo(a[2])>=0 && c[2].compareTo(a[3]) <= 0) {
				b[k++] = ch[i];
			}
		}
	}
	public void set() {
		String a[][] = new String[k][5];
		String t[];
		String t1;
		for(int i = 0; i < k; i++)
		{
			a[i] = b[i].split(" ");//将每一个字符串都分隔开,存到二维数组里
		}
		for(int i = 0; i < k; i++) {
			for(int j = i+1; j < k; j++) {
				if(a[i][1].compareTo(a[j][1]) > 0) {
					t = a[i];
					a[i] = a[j];
					a[j] = t;
					t1 = b[i];
					b[i] = b[j];
					b[j] = t1;
				}
				else if(a[i][1].compareTo(a[j][1]) == 0 && a[i][2].compareTo(a[j][2]) < 0) {
					t = a[i];
					a[i] = a[j];
					a[j] = t;
					t1 = b[i];
					b[i] = b[j];
					b[j] = t1;
				}
			}
		}
	}
	public void put() {
		System.out.println(k);
		for(int i = 0; i < k; i++) {
			System.out.println(b[i]);
		}
	}
}
public class Main {
	public static void main(String args[]) {
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		String a = cin.nextLine();
		while(cin.hasNext()) {
			a = cin.nextLine();
			int i, k = 0;
			int b[] = new int[100005];//标记数组
			String ch[] = new String[100005];
			for(i = 0; i  < n; i++) {
				String ch1 = cin.nextLine();
				if(b[ch1.charAt(2)-'0'] != 0) {
					continue;
				}
				else {
					ch[k++] = ch1;
					b[ch1.charAt(2)-'0']++;//标记当前女神已经出现过
				}
			}
			People people = new People(a, ch);
			people.fit(k);
			people.set();
			people.put();
		}
   }
}





猜你喜欢

转载自blog.csdn.net/Joywss/article/details/80008808