Port 53

明日のための技術メモ

AtCoder ABC152

AtCoder ABC152解いた分だけまとめ。
今回はAB2完、Cは問題文がよく分からなかったので解説ACです。
レート少し下がって悲しい

目次

A. AC or WA

問題文 f:id:saturn-glave:20200120210618p:plain

全部ACになるのは全テストケース数と通ったテストケース数が等しいときだけ。
その通りif文で分岐させる。おしまい。

ACしたコード

#coding:utf-8
n, m = map(int, input().split())

if n == m:
    print('Yes')
else:
    print('No')

B. Comparing Strings

問題文 f:id:saturn-glave:20200120210958p:plain

最初の入力を数字でとり、その後比較する数字を文字として変数に格納。
辞書での順番なので、単純に文字としてminを取る。

ACしたコード

#coding:utf-8
a, b = map(int,input().split())

a_num = str(a) * b
b_num = str(b) * a

print(min(str(a_num), str(b_num)))

C. Low Elements

問題文 f:id:saturn-glave:20200120211259p:plain

ここから解説AC。問題文がとても読みにくかった。
累積和を使うらしい。蟻本でちゃんと読んで勉強しよう...
解説PDFを読んで実装してみた。

ポイント

  • リストの累積和 itertools.accumulate(list, func)

ACしたコード

#coding:utf-8
import itertools
n = int(input())
p = list(map(int, input().split()))
ans = 0

#pの累積和を求める。
q = itertools.accumulate(p, min)
q = list(q)

# pの累積和とpを比べ、pの各要素について累積和以下であれば答えに入れる
for i in range(n):
    if p[i] <= q[i]:
        ans += 1

print(ans)

参考