0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【競プロ練習】AtCoder Beginner Contest 175をやってみた(A~C)

Posted at

AtCoder Beginner Contest 171に参加しました。
A~C問題まで解けました。そのときの思考を記します。

A - Rainy Season

長さ3の文字列からRの連続する個数を返す。ゴリ押しした。

S = input()
if 'RRR' in S:
    print(3)
elif 'RR' in S:
    print(2)
elif 'R' in S:
    print(1)
else:
    print(0)

B - Making Triangle

N本の棒の長さリストLが与えられる。このうち3つを選んで、条件をみたす組み合わせの個数を返す。

組み合わせを総当りで調べたが、そのためにitertools.combinationsを使用した。
使い方を競技中に調べるという……。
itertools.combinations(N,r)
リストNからr個選ぶ組み合わせのリストを返します。
例:combinations(range(5),3)→(0,1,2),(0,1,3),(0,1,4),(0,2,3),(0,2,4),(0,3,4),(1,2,3),(1,2,4),(1,3,4),(2,3,4)

import itertools
N = int(input())
L = list(map(int, input().split()))

count = 0
for i in itertools.combinations(range(N), 3):
    Lx = sorted([L[i[0]], L[i[1]], L[i[2]]])
    if not (Lx[0] == Lx[1] or Lx[1] == Lx[2] or Lx[2] == Lx[0]):
        if Lx[0] + Lx[1] > Lx[2] :
            count += 1
print(count)

C - Walking Takahashi

$X, K, D$ がそれぞれ、初期位置、移動回数、移動距離である。移動方向は正 or 負を選択でき、もっとも0に近づける。

$i$ を正に移動する回数とし、最終的な位置を $d$ とすると、

X + iD - \left((K-i)D\right) = d\\
X/D + (2i - K) = d/D\\
\frac{X/D - K}{2} + i = d/2D\\

$d$ の絶対値が $0$ に近い
⇒ $\frac{X/D - K}{2} + i ;(i=0,1,\ldots,K)$ がもっとも $0$ に近づく $i$ を求める。
⇒ $\frac{X/D - K}{2} = {\rm dist}$ と置き、

if dist > 0
 ⇒ i = 0
else if dist + K < 0
 ⇒ i = K
else
 ⇒ i = -round(dist)

を満たす $i$ のときの $|d|$ を求める。

X, K, D = list(map(int, input().split()))

dist= (X/D-K)/2

if -dist > K :
    i = K
elif dist > 0 :
    i = 0
else :
    i = -round(dist)

print(abs(X + i*D - ((K-i)*D)))

#終わり
D問題以降はまだできていません、、、

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?