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?

ABC373参加記録 by Python

Posted at

リアルタイムに解けた問題

A - September

問題文

英小文字からなる12個の文字列$S_{1},S_{2},...,S_{12}$があります。
$S_{i}$の長さが$i$であるような整数$i(1\leq i\leq 12)$がいくつあるか求めてください。

制約

  • $S_{i}$は英小文字からなる長さ1以上100以下の文字列である。$(1\leq i\leq 12)$

アルゴリズム

ループを回しながら、入力を受け取り、その文字列の長さがループ回数と同じ値であれば、変数countを増やしていく。

ソースコード

count = 0
for i in range(12):
  S = input()
  if len(S) == i+1:
    count += 1
    
print(count)

B - 1D Keyboard

問題文

26個のキーが数直線上に並んだキーボードがあります。

このキーボードの配列はABCDEFGHIJKLMNOPQRSTUVWXYZを並べ替えた文字列$S$で表されます。文字列$S_{x}$に対応するキーが座標$x(1\leq x \leq 26)$にあります。ここで、$S_{x}$は、$S$の$x$文字目を表します。

あなたはこのキーボードを使ってABCDEFGHIJKLMNOPQRSTUVWXYZをこの順で右手人差し指で一度だけ入力します。ある文字を入力するためには、その文字に対応するキーの座標に指を移動させてキーを押す必要があります。

はじめ、指はAに対応するキーの座標にあります。Aに対応するキーを押してから、Zに対応するキーを押すまでの指の移動距離の合計として考えられる最小値を求めてください。ただし、キーを押す動作は移動距離に含まれません。

制約

  • $S$はABCDEFGHIJKLMNOPQRSTUVWXYZを並べ替えた文字列である。

アルゴリズム

ループを用いて、入力におけるそれぞれの文字の位置を特定していく。移動距離の最小値を求めたいので、Aをみつけたときは、その位置だけを変数に保持、それ以外の文字の時は移動距離を累積し、その位置を変数に保持する。

ソースコード

alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
S = input()

position = -1
total = 0

for word in alphabet:
  for i in range(len(S)):
    if word == S[i]:
      if word == "A":
        position = i
      else:
        total += abs(position-i)
        position = i
        
print(total)

C - Max Ai+Bj

問題文

長さ$N$の整数列$A,B$が与えられます。1以上$N$以下の整数$i,j$を選んで、$A_{i}+B_{j}$の値を最大化してください。

制約

  • $1\leq N \leq 5 * 10^{5}$
  • $|A_{i}|\leq 10^{9}(i = 1,2,...,N)$
  • $|B_{j}|\leq 10^{9}(j = 1,2,...,N)$
  • 入力はすべて整数

アルゴリズム

入力を受け取る段階で、$A$と$B$それぞれの最大値を取得し、その和を出力

ソースコード

N = int(input())
A = max(list(map(int, input().split())))
B = max(list(map(int, input().split())))

print(A+B)
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?