[PYTHON] AtCoder Beginner Contest 047 Revue des questions précédentes

Temps requis

スクリーンショット 2020-02-27 18.45.04.png

Impressions

C'est trop facile et c'est étrange. Après tout, le niveau d'ABC de nos jours est trop élevé ...

Problème A

Si vous pouvez en ajouter de petits pour en faire un grand

answerA.py


x=list(map(int,input().split()))
x.sort()
if x[0]+x[1]==x[2]:
    print("Yes")
else:
    print("No")

Problème B

Pour trouver l'aire du rectangle, il suffit de connaître les coordonnées x, y en bas à gauche et les coordonnées x, y en haut à droite, et comme le rectangle se rétrécit à partir des informations données, il suffit de classer les cas en fonction de la valeur de a. De plus, a2-a1 et a4-a3 peuvent chacun être-, mais dans ce cas, un rectangle ne peut pas être créé, il doit donc être défini sur 0.

answerB.py


w,h,n=map(int,input().split())
a1,a2,a3,a4=0,w,0,h
for i in range(n):
    x,y,a=map(int,input().split())
    if a==1:
        a1=max(a1,x)
    elif a==2:
        a2=min(a2,x)
    elif a==3:
        a3=max(a3,y)
    else:
        a4=min(a4,y)
print(max(a2-a1,0)*max(a4-a3,0))

Problème C

Puisqu'on peut voir qu'une section de couleur continue est inversée par une opération, on peut voir que le nombre de sections est réduit d'une par cette opération. Par conséquent, puisqu'il suffit de répéter cette opération pour faire tout en une seule section, le nombre de sections-1 est le nombre de pierres à obtenir. De plus, le nombre de sections peut être facilement obtenu en utilisant un groupe par fonction créé soi-même.

answerC.py


def groupby(a):
    a2=[[a[0],1]]
    for i in range(1,len(a)):
        if a2[-1][0]==a[i]:
            a2[-1][1]+=1
        else:
            a2.append([a[i],1])
    return a2

s=groupby(input())
print(len(s)-1)

Problème D

Comme l'énoncé du problème est très long, j'ai pensé que c'était un problème difficile, mais rien n'était difficile et j'ai raté le rythme. (Il m'a fallu beaucoup de temps pour me préparer. ** Je veux m'habituer aux longues phrases! **)

Tout d'abord, puisque vous avez 0 pomme au début et que vous achetez et vendez au total T, vous pouvez voir que si vous achetez et vendez T // 2 dans une ville où la différence de montant est la plus grande, le profit sera maximal. Je vais. Par conséquent, vous voulez savoir quel groupe de villes (i, j) ** présente la plus grande différence de montant. Si vous déplacez les deux groupes de villes ici, le montant du calcul augmentera, j'ai donc prêté attention à ** des deux villes, qui vend des pommes **. À ce moment, la ville où vous devriez acheter des pommes est uniquement déterminée. C'est parce que les pommes sont les moins chères des villes 1 ~ j-1. Aussi, à ce moment, si la pomme recherche la ville la moins chère parmi les villes 1 à j-1 pour chaque ville j, le montant du calcul est de 0 ($ n ^ 2 $) et il n'est pas à temps, donc ** somme cumulée Le minimum d'objets adjacents est calculé ** ("minimum dans la ville 1 ~ j" est égal au "minimum dans la ville 1 ~ j-1 et minimum entre la ville j"). Par conséquent, vous pouvez réduire le profit en abaissant ou en augmentant le prix d'une pomme (un seul yen) pour le groupe de la ville où la différence de montant d'argent est la plus grande, alors ** Comptez le nombre de groupes d'une telle ville C'est bien ** (Le prix des pommes étant différent dans chaque ville, vous pouvez simplement compter le nombre de paires. Si vous avez des pommes du même prix, vous pouvez réduire les bénéfices à moindre coût, mais cela dépend des restrictions Il n'y a pas de pomme du même prix en ville.)

answerD.py


n,t=map(int,input().split())
a=list(map(int,input().split()))
x=[0]*n
x[0]=a[0]
for i in range(1,n):
    x[i]=min(x[i-1],a[i])
d=dict()
for i in range(1,n):
    y=a[i]-x[i-1]
    if y>0:
        if y in d:
            d[y]+=1
        else:
            d[y]=1
d=list(d.items())
d.sort(reverse=True)
print(d[0][1])

Recommended Posts

AtCoder Beginner Contest 102 Revue des questions précédentes
AtCoder Beginner Contest 072 Revue des questions précédentes
AtCoder Beginner Contest 085 Revue des questions précédentes
AtCoder Beginner Contest 062 Revue des questions précédentes
AtCoder Beginner Contest 113 Revue des questions précédentes
AtCoder Beginner Contest 074 Revue des questions précédentes
AtCoder Beginner Contest 051 Revue des questions précédentes
AtCoder Beginner Contest 127 Revue des questions précédentes
AtCoder Beginner Contest 119 Revue des questions précédentes
AtCoder Beginner Contest 151 Revue des questions précédentes
AtCoder Beginner Contest 075 Revue des questions précédentes
AtCoder Beginner Contest 054 Revue des questions précédentes
AtCoder Beginner Contest 110 Revue des questions précédentes
AtCoder Beginner Contest 070 Revue des questions précédentes
AtCoder Beginner Contest 105 Revue des questions précédentes
AtCoder Beginner Contest 112 Revue des questions précédentes
AtCoder Beginner Contest 089 Revue des questions précédentes
AtCoder Beginner Contest 069 Revue des questions précédentes
AtCoder Beginner Contest 079 Revue des questions précédentes
AtCoder Beginner Contest 056 Revue des questions précédentes
AtCoder Beginner Contest 087 Revue des questions précédentes
AtCoder Beginner Contest 067 Revue des questions précédentes
AtCoder Beginner Contest 093 Revue des questions précédentes
AtCoder Beginner Contest 046 Revue des questions précédentes
AtCoder Beginner Contest 123 Revue des questions précédentes
AtCoder Beginner Contest 049 Revue des questions précédentes
AtCoder Beginner Contest 078 Revue des questions précédentes
AtCoder Beginner Contest 081 Revue des questions précédentes
AtCoder Beginner Contest 047 Revue des questions précédentes
AtCoder Beginner Contest 060 Revue des questions précédentes
AtCoder Beginner Contest 104 Revue des questions précédentes
AtCoder Beginner Contest 057 Revue des questions précédentes
AtCoder Beginner Contest 121 Revue des questions précédentes
AtCoder Beginner Contest 126 Revue des questions précédentes
AtCoder Beginner Contest 090 Revue des questions précédentes
AtCoder Beginner Contest 103 Revue des questions précédentes
AtCoder Beginner Contest 061 Revue des questions précédentes
AtCoder Beginner Contest 059 Revue des questions précédentes
AtCoder Beginner Contest 044 Revue des questions précédentes
AtCoder Beginner Contest 083 Revue des questions précédentes
AtCoder Beginner Contest 048 Revue des questions précédentes
AtCoder Beginner Contest 124 Revue des questions précédentes
AtCoder Beginner Contest 116 Revue des questions précédentes
AtCoder Beginner Contest 097 Revue des questions précédentes
AtCoder Beginner Contest 088 Revue des questions précédentes
AtCoder Beginner Contest 092 Revue des questions précédentes
AtCoder Beginner Contest 099 Revue des questions précédentes
AtCoder Beginner Contest 065 Revue des questions précédentes
AtCoder Beginner Contest 053 Revue des questions précédentes
AtCoder Beginner Contest 094 Revue des questions précédentes
AtCoder Beginner Contest 063 Revue des questions précédentes
AtCoder Beginner Contest 107 Revue des questions précédentes
AtCoder Beginner Contest 071 Revue des questions précédentes
AtCoder Beginner Contest 064 Revue des questions précédentes
AtCoder Beginner Contest 082 Revue des questions précédentes
AtCoder Beginner Contest 084 Revue des questions précédentes
AtCoder Beginner Contest 068 Revue des questions précédentes
AtCoder Beginner Contest 058 Revue des questions précédentes
AtCoder Beginner Contest 043 Revue des questions précédentes
AtCoder Beginner Contest 098 Revue des questions précédentes
AtCoder Beginner Contest 114 Revue des questions précédentes