哈利波特与魔杖的故事(洛谷P4613题题解,Java语言描述)

题目要求

P4613题目链接

在这里插入图片描述
在这里插入图片描述

分析

翻译一下:

题目描述

哈利·波特(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");
    }
}
发布了479 篇原创文章 · 获赞 972 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/weixin_43896318/article/details/104241237
今日推荐