Résolution avec Ruby, Perl, Java et Python AtCoder ABC 131 D Tri des tableaux

introduction

Ce thème

AtCoder Beginner Contest 131 D - Megalomania Difficulty: 594

Ce thème, tri des tableaux Ruby C'est une sorte de tableau, donc je pense que c'est facile à mettre en œuvre. ~~ Puisque c'est mon premier Python, j'ai choisi une question plus légère. ~~

ruby.rb


n = gets.to_i
a = Array.new(n){gets.split.map(&:to_i)}
a.sort_by!{|x| x[1]}
ans = 0
n.times do |i|
  ans += a[i][0]
  if ans > a[i][1]
    puts "No"
    exit
  end
end
puts "Yes"

sort.rb


a.sort_by!{|x| x[1]}

~~ Tri selon plusieurs conditions, mais à des fins d'apprentissage, une seule peut être triée comme solution. ~~ ** Addenda ** Certaines corrections ont été apportées aux commentaires reçus. Python C'est presque une copie car c'est résolu avec *** Python *** pour la première fois.

python.py


n = int(input())
a = list(list(map(int, input().split())) for _ in range(n))
a.sort(key=lambda x: x[1])
ans = 0
for i in range(0, n):
    ans += a[i][0]
    if ans > a[i][1]:
        print("No")
        exit()
print("Yes")

Le codage est facile car l'extension VSCode fonctionne.

range.py


for i in range(0, n):
for i in range(0, n - 1):

J'ai essayé de le tourner avec i à for, mais j'ai écrit n -1 et j'ai obtenu WA.

La prochaine fois, j'essaierai de trier selon plusieurs conditions. Perl

perl.pl


chomp (my $n = <STDIN>);
my @a;
for my $i (0..$n-1) {
  my @in = split / /, <STDIN>;
  ($a[$i][0], $a[$i][1]) = @in;
}
@a = sort {$$a[1]<=>$$b[1] || $$b[0]<=>$$a[0]} @a;

my $ans = 0;
for my $i (0..$n-1) {
  $ans += $a[$i][0];
  if ($ans>$a[$i][1]) {
    print "No\n";
    exit;
  }
}
print "Yes\n";

sort.pl


@a = sort {$$a[1]<=>$$b[1] || $$b[0]<=>$$a[0]} @a;

java.java


import java.util.*;

class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = Integer.parseInt(sc.next());
        List<Work> work = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            int time = Integer.parseInt(sc.next());
            int limit = Integer.parseInt(sc.next());
            work.add(new Work(time, limit));
        }
        sc.close();
        work.sort(Comparator.comparingInt(x -> x.limit));
        int ans = 0;
        for (int i = 0; i < n; i++) {
            ans += work.get(i).time;
            if (ans > work.get(i).limit) {
                System.out.println("No");
                return;
            }
        }
        System.out.println("Yes");
    }

    static class Work {
        int time;
        int limit;

        Work(int time, int limit) {
            this.time = time;
            this.limit = limit;
        }
    }
}

sort.java


        work.sort(Comparator.comparingInt(x -> x.limit));

** Addenda ** Comme on m'a dit dans les commentaires, j'ai changé la partie de comparaison de tri par le code qui utilise Comparator introduit dans java8. Plus sûr et légèrement plus rapide.

Ruby Python Perl Java
Longueur du code 189 Byte 231 Byte 315 Byte 972 Byte
Temps d'exécution 484 ms 995 ms 1237 ms 883 ms
Mémoire 22520 KB 53728 KB 66788 KB 72900 KB

Résumé

Recommended Posts

Résolution avec Ruby, Perl, Java et Python AtCoder ABC 131 D Tri des tableaux
AtCoder ABC 165 D Floor Function résolue en Ruby, Perl, Java et Python
Résolution avec Ruby, Perl, Java et Python AtCoder ABC 065 C-th power
Résolution avec Ruby et Python AtCoder ABC151 D Recherche de priorité de largeur
Résolution avec Ruby, Perl, Java et Python AtCoder ATC 002 A
Résolution avec Ruby, Perl, Java et Python AtCoder ATC 002 B
Résolution avec Ruby et Python AtCoder ABC138 D Liste adjacente
Résolution en Ruby, Python et Java AtCoder ABC141 D Priority Queue
Résolution avec Ruby, Python et networkx AtCoder ABC168 D Liste adjacente
Résolution avec Ruby, Perl, Java et Python AtCoder AGC 033 A Recherche de priorité de largeur
Résolution avec Ruby, Perl, Java et Python AtCoder ARC 098 C Somme cumulative
Résolution avec Ruby, Perl, Java et Python AtCoder CADDi 2018 C factorisation premier
Résolution avec Ruby, Perl, Java et Python AtCoder ABC 047 C Expression régulière
Résolution avec Ruby et Python AtCoder ABC133 D Somme cumulée
Résolution avec Ruby et Python AtCoder AISING2020 D Méthode carrée itérative
Résolution avec Ruby et Python AtCoder ABC011 C Méthode de planification dynamique
Résolution avec Ruby et Python AtCoder ABC153 E Méthode de planification dynamique
Résolution avec Ruby, Perl, Java et Python AtCoder Diverta 2019 Concours de programmation Manipulation de chaînes C
Résolution avec Ruby, Python et numpy AtCoder ABC054 B Calcul de la matrice
Résolution avec Ruby et Python AtCoder ABC057 C Décomposition du facteur premier Recherche complète de bits
Résolution avec Ruby, Perl, Java et Python AtCoder ARC 066 C Hash carré itératif
Résolution avec Ruby et Python AtCoder ARC 059 C Méthode du carré minimum
Résolution avec Ruby et Python AtCoder ARC067 C factorisation premier
Résoudre AtCoder ABC168 avec python (A ~ D)
AtCoder ARC104 B Somme cumulative résolue en Ruby, Python et Java
Résolution avec Ruby et Python AtCoder Tenka1 Programmer Contest C Somme cumulative
Manipulation de chaîne C AtCoder ABC110 à résoudre dans Ruby
Résolution avec Ruby et Python AtCoder CODE FESTIVAL 2016 qual C B Priority Queue
AtCoder ABC 182 Python (A ~ D)
AtCoder ABC168 Une expression de cas résolue en Ruby et Python
Résoudre ABC166 A ~ D avec Python
Ruby Python Java Tri insensible à la casse
Résolu AtCoder ABC 114 C-755 avec Python3
Répertorier les chaînes de fractionnement et de jointure avec fractionnement et jointure (Perl / PowerShell / Java / Kotlin / Python)
Python> lien> Initialisation et affectation de tableaux 2D
[AtCoder] Résoudre ABC1 ~ 100 Un problème avec Python
Crypter avec Ruby (Rails) et décrypter avec Python
Scraping Web facile avec Python et Ruby
Résolution avec Ruby et Python AtCoder ABC172 C Dichotomie de somme cumulée
[AtCoder] Résoudre un problème de ABC101 ~ 169 avec Python
MessagePack-Try pour lier Java et Python avec RPC
Résumé de la correspondance entre les opérations de tableau ruby et python
AtCoder ABC 174 Python
[Explication AtCoder] Contrôlez les problèmes A, B, (C), D de ABC165 avec Python!
[Explication AtCoder] Contrôlez les problèmes A, B, C, D d'ABC183 avec Python!
Résolution du modèle Lorenz 96 avec Julia et Python
Défiez AtCoder (ABC) 164 avec Python! Un problème ~ C
[Explication AtCoder] Contrôlez les problèmes A, B, C, D d'ABC181 avec Python!
AtCoder ABC 175 Python
Tendances 2014 du cadre d'application Web (PHP / Java / Ruby / Python / Perl)
Benchmarks langage C, Java, Python avec factorisation prime
Essayez le fonctionnement de la base de données avec Python et visualisez avec d3
Étudiez l'échange de données Java et Python avec Apache Arrow
Comparaison de CoffeeScript avec la grammaire JavaScript, Python et Ruby
Gestion des versions de Node, Ruby et Python avec anyenv
Ruby, Python et carte
Python et Ruby se séparent