0
0

More than 1 year has passed since last update.

AtCoder Beginner Contest 260 不参戦記

Posted at

AtCoder Beginner Contest 260 不参戦記

ABC260A - A Unique Letter

書くだけ.

S = input()

d = {}
for c in S:
    d.setdefault(c, 0)
    d[c] += 1

for c in d:
    if d[c] == 1:
        print(c)
        exit()
else:
    print(-1)

ABC260B - Better Students Are Needed!

ソートして言われた順に取るだけではあるけど、ソートの応用編を知らないと大変そうではある.

N, X, Y, Z = map(int, input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

result = []

a = list(range(1, N + 1))

a.sort(key=lambda x: (A[x - 1], -x), reverse=True)
result.extend(a[:X])
a = a[X:]

a.sort(key=lambda x: (B[x - 1], -x), reverse=True)
result.extend(a[:Y])
a = a[Y:]

a.sort(key=lambda x: (A[x - 1] + B[x - 1], -x), reverse=True)
result.extend(a[:Z])

print(*sorted(result), sep='\n')

ABC260C - Changing Jewels

何も考えずにメモ化再帰するのが楽そう.

from sys import setrecursionlimit
from functools import lru_cache

setrecursionlimit(10 ** 6)

N, X, Y = map(int, input().split())

@lru_cache(maxsize=None)
def red(level, count):
    if level == 1:
        return 0
    return (red(level - 1, 1) + blue(level, X)) * count

@lru_cache(maxsize=None)
def blue(level, count):
    if level == 1:
        return count
    return (red(level - 1, 1) + blue(level - 1, Y)) * count

print(red(N, 1))
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