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();
}
}
}