题目要求
分析
先翻译一下:
题目描述
哈利·波特(Harry Potter)在与伏地魔(Voldemort)的战斗中损坏了魔杖。他决定在Olivander的魔杖店里换一根新魔杖。在商店的地板上,他看到了N根魔杖和N根魔杖盒子。魔杖的长度分别为X1,X2 … Xn,盒子的大小为Y1,Y2… Yn。如果X≤Y,则可以将长度为X的棒放在大小为Y的盒子中。哈利想知道他是否可以将所有魔杖放在盒子里,以便每个盒子里只包含一个魔杖。帮助他解决这个难题。
输入格式
输入的第一行包含正整数N(1≤N≤100),即任务中的数字。第二行包含N个正整数Xi(1≤Xi≤109)和任务中的数字。第三行包含N个正整数Xi(1≤Xi≤109)和任务中的数字。
输出格式
如果Harry可以将所有魔杖放在盒子中,则输出“ DA”(克罗地亚语为“是”),否则输出“ NE”(克罗地亚语为“否”)。
好,简单分析一下:
题目的意思很明确,排序以后每次用最小的魔杖对最小的盒子,看能不能放进去(魔杖长度小于盒子容量),一旦有不能的就输出NE,全部可以就输出DA……
有的人怕是懒得看题,哎,英语难死人啊……
AC代码(Java语言描述)
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
int[] x_array = new int[num], y_array = new int[num];
for (int i = 0; i < num; i++) {
x_array[i] = scanner.nextInt();
}
for (int i = 0; i < num; i++) {
y_array[i] = scanner.nextInt();
}
scanner.close();
Arrays.sort(x_array);
Arrays.sort(y_array);
for (int i = 0; i < num; i++) {
if (x_array[i] > y_array[i]) {
System.out.println("NE");
return;
}
}
System.out.println("DA");
}
}