[PYTHON] La programmation du concours, c'est quoi (bonus)

Cet article est un article supplémentaire de Competition Programming is What.

S'il devait être implémenté, ce serait un article avec le code source de.

Pour faciliter la tâche des personnes qui ne sont pas python Certaines parties sont du code redondant (pour les professionnels de la compétition), mais pardonnez-moi s'il vous plaît.

Solution simple

# coding: utf-8
#Sort pour python qui accélère l'acquisition d'entrée standard
import sys
input = sys.stdin.readline

#Obtenir lors de la conversion numérique de l'entrée standard
N = int(input())
#Obtenez une entrée standard lors de la conversion du tableau et de la valeur numérique
H = [int(x) for x in input().split()]

#Calculez la distance mobile maximale lors de l'atterrissage sur chaque case
#Définition des variables de stockage de la distance mobile
ans = []

#Décaler la position de départ depuis le début
for i in range(N):
    count = 0
    #Vérifiez combien vous pouvez vous déplacer depuis la position de départ
    for j in range(i,N-1):
        if H[j] >= H[j+1]:
            #Si vous pouvez vous déplacer, augmentez la distance que vous pouvez parcourir
            count += 1
        else:
            #Fin si non mobile
            break
    #Ajouter à la liste des distances mobiles
    ans.append(count)

#Affichage des réponses
print(max(ans))

Solution optimale

# coding: utf-8
#Sort pour python qui accélère l'acquisition d'entrée standard
import sys
input = sys.stdin.readline

#Obtenir lors de la conversion numérique de l'entrée standard
N = int(input())
#Obtenez une entrée standard lors de la conversion du tableau et de la valeur numérique
H = [int(x) for x in input().split()]
#Jusqu'ici ensemble

#Définition de variable de type traitement
max_count = 0
tmp_count = 0

#Commencez depuis le début
for i in range(N-1):
    if H[i] >= H[i+1]:
        #Augmentez le nombre de distances si vous pouvez vous déplacer
        tmp_count += 1
    else:
        #Lorsqu'il n'est pas possible de se déplacer, la distance qui peut être déplacée jusqu'à ce point
        #Comparez la distance de déplacement maximale actuelle
        if tmp_count > max_count:
            #Étant donné que la distance mobile cette fois-ci est plus grande, je vais la mettre à jour
            max_count = tmp_count
        #Réinitialiser la distance parcourue actuelle
        tmp_count = 0

#La fin de la boucle est N-Puisqu'il est 1, si vous pouvez vous déplacer d'un certain point à l'extrémité droite,
#Parce que la distance parcourue n'a pas été comparée à la distance parcourue maximale
#Utilisez max et utilisez la valeur la plus élevée comme réponse
print(max(max_count,tmp_count))

Recommended Posts

La programmation du concours, c'est quoi (bonus)
Qu'est-ce que l'espace de noms
Qu'est-ce que copy.copy ()
Qu'est-ce que Django? .. ..
Qu'est-ce que dotenv?
Qu'est-ce que POSIX
Quel type de langage de programmation est Python?
Qu'est-ce que le klass?
Qu'est-ce que SALOME?
Qu'est-ce que Linux?
Qu'est-ce que python
Qu'est-ce que l'hyperopt?
Qu'est-ce que Linux
Qu'est-ce que pyvenv
Qu'est-ce que __call__
Qu'est-ce que Linux
Qu'est-ce que Python
Qu'est-ce que la «programmation fonctionnelle» et «orientée objet»? Édition Python
Qu'est-ce qu'une distribution?
Qu'est-ce que le F-Score de Piotroski?
Qu'est-ce que Raspberry Pi?
[Python] Qu'est-ce que Pipeline ...
Qu'est-ce que Calmar Ratio?
Qu'est-ce qu'un terminal?
[Tutoriel PyTorch ①] Qu'est-ce que PyTorch?
Qu'est-ce que le réglage des hyper paramètres?
Qu'est-ce qu'un hacker?
Qu'est-ce que JSON? .. [Remarque]
Programmation compétitive avec python
À quoi sert Linux?
Qu'est-ce qu'un pointeur?
Qu'est-ce que l'apprentissage d'ensemble?
Qu'est-ce que TCP / IP?
Qu'est-ce que __init__.py de Python?
Qu'est-ce qu'un itérateur?
Qu'est-ce que UNIT-V Linux?
[Python] Qu'est-ce que virtualenv
Qu'est-ce que l'apprentissage automatique?
Qu'est-ce que Mini Sam ou Mini Max?
Qu'est-ce que l'analyse de régression logistique?
Quelle est la fonction d'activation?
Qu'est-ce qu'une variable d'instance?
Qu'est-ce qu'un arbre de décision?
Qu'est-ce qu'un changement de contexte?
Qu'est-ce que Google Cloud Dataflow?
[DL] Qu'est-ce que la décroissance du poids?
[Python] Python et sécurité-① Qu'est-ce que Python?
Qu'est-ce qu'un super utilisateur?
[Python] * args ** Qu'est-ce que kwrgs?
Qu'est-ce qu'un appel système
[Définition] Qu'est-ce qu'un cadre?
A quoi sert l'interface ...
Qu'est-ce que Project Euler 3 Acceleration?