0
0

ABC366参加記録 by Python

Posted at

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

A - Election2

問題文

AtCoder市では市長選挙が行われています。候補者は高橋氏と青木氏です。
2人のどちらかに投じられた有効票は$N$票あり、現在開票が行われています。なお、$N$は奇数です。
現在の開票作業の途中経過は高橋氏に$T$票、青木氏に$A$票です。
現時点で勝敗が確定しているかを判定してください、

制約

  • $1 \leq N \leq 99$
  • $N$は奇数
  • $0 \leq T,A \leq N$
  • $T+A \leq N$
  • 入力はすべて整数

アルゴリズム

$T$または$A$が全投票数の半数以上か判断。

ソースコード

N, T, A = map(int, input().split())

if T > N/2 or A > N/2:
  print('Yes')
else:
  print('No')

B - Vertical Writing

問題文

横書きの文章が与えられます。縦書きに出力してください。空白をで埋めてください。

$N$個の、英小文字からなる文字列$S_{1}, S_{2},...,S_{N}$が与えられます。これらの文字列の長さの最大値を$M$とします。
以下の条件を満たす$M$個の文字列$T_{1}, T_{2},...,T_{M}$を出力してください。

  • 各$T_{i}$は英小文字およびからなる

  • 各$T_{i}$の末尾はでない

  • 各$1 \leq i \leq N$について、次が成り立つ。

    • 各$1 \leq j \leq |S_{i}|$について、$T_{j}$の$N - i + 1$文字目が存在し、$T_{1}, T_{2},...,T_{|S_{i}|}$それぞれの$N - i + 1$文字目をこの順に連結したものは$S_{i}$と一致する。

    • 各$|S_{i}|+1 \leq j \leq M$について、$T_{j}$の$N - i + 1$文字目は存在しないか、である。

ただし、$|S_{i}|$で文字列S_{i}の長さを表します。

制約

  • $N$は1以上100以下の整数
  • $S_{i}$は長さ1以上100以下の英小文字からなる文字列

アルゴリズム

各文字列のうち、最大の長さを求めて、その数値でfor文を動かす。
各文字列の先頭の要素を$S_{N}$から順に取り出しつなげる。要素がなければ、をつなげる。出力の際は条件を満たすように出力する。

ソースコード

N = int(input())

S = [list(input()) for _ in range(N)]

S_output = []

max_len = -1

for s in S:
  if len(s) > max_len:
    max_len = len(s)


for i in range(max_len):
  info = ''
  for j in range(N):
    if len(S[N-1-j]) != 0:
      chr = S[N-1-j].pop(0)
    else:
      chr = '*'
    info += chr

  S_output.append(info)

for s in S_output:
  if '*' not in s:
    print(s)
  else:
    if s[-1] != '*':
      print(s)
    else:
      while True:
        if s[-1] == '*':
          s = s[:-1]
        else:
          print(s)
          break
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