# HDU 5210

174人阅读 评论(0)

Description
WLD likes playing with numbers. One day he is playing with N$N$ integers. He wants to delete K$K$ integers from them. He likes diversity, so he wants to keep the kinds of different integers as many as possible after the deletion. But he is busy pushing, can you help him?

Input
There are Multiple Cases. (At MOST 100$100$)

For each case:

The first line contains one integer N(0<N100)$N(0 < N \leq 100)$.

The second line contains N$N$ integers a1,a2,...,aN(1aiN)$a1,a2,...,aN(1 \leq ai \leq N)$, denoting the integers WLD plays with.

The third line contains one integer K(0K<N)$K(0 \leq K < N)$.

Output
For each case:

Print one integer. It denotes the maximum of different numbers remain after the deletion.

Sample Input

4
1 3 1 2
1

Sample Output

3

Hint

if WLD deletes a 3, the numbers remain is [1,1,2],he’ll get 2 different numbers. if WLD deletes a 2, the numbers remain is [1,1,3],he’ll get 2 different numbers. if WLD deletes a 1, the numbers remain is [1,2,3],he’ll get 3 different numbers.

System.out.println(n -num- (k - num));//num是数组不同数字的数字


import java.util.Scanner;

public class Main{
private static int n = 0, k = 0, num = 0;
private static int[] array;
private static int[] resArray;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
num = 0;
n = scanner.nextInt();
array = new int[n];
resArray = new int[n];
for (int i = 0; i < n; i++) {
int temp = scanner.nextInt();
if (judge(temp)) {
array[i] = temp;
} else {
resArray[i] = temp;
num++;
}
}
k = scanner.nextInt();
if (k <= num) {
System.out.println(n - num);
} else {
System.out.println(n -num- (k - num));
}

}
scanner.close();
}

private static boolean judge(int x) {
for (int i = 0; i < array.length; i++) {
if (array[i] == x) {
return false;
}
}
return true;
}

}

0
0

个人资料
• 访问：112175次
• 积分：1387
• 等级：
• 排名：千里之外
• 原创：41篇
• 转载：3篇
• 译文：0篇
• 评论：32条
博客专栏
 数据结构与算法 文章：0篇 阅读：0
 android 学习 文章：11篇 阅读：28405
最新评论