和歌山産pythonプログラマのブログ

和歌山出身プログラマmatsu7874が書いています。Python3と時々C++11を書きます。

paizaのプログラミングで彼女を作るやつを全クリアした

paiza.jp 彼女欲しいって言ってたら友達にオヌヌメされたので解いた。全体的に制約が超ゆるいので何でも通っちゃう。 一応水着も手に入れたけど、僕がほしいのは生身の彼女なんだ!

「めがね」ゲットチャレンジ!

本当にやるだけ。制約が小さいので全部見れる。

N=int(input())
Q=[list(map(int, input().split())) for i in range(N)]
M=int(input())
P=[list(map(int, input().split())) for i in range(M)]
for y in range(N-M+1):
    for x in range(N-M+1):
        is_miss = False
        for i in range(M):
            for j in range(M):
                if Q[y+i][x+j] != P[i][j]:
                    is_miss = True
                    break
            if is_miss:
                break
        if not is_miss:
            print(y,x)
            exit()

「サンタ服」ゲットチャレンジ!

個人的にサンタ服は好きです。何も考えずにXとYの最小幅とZをかける。

X, Y, Z, N = map(int, input().split())
cut = [[0, X], [0, Y]]
for i in range(N):
    d, a = map(int, input().split())
    cut[d].append(a)
min_v = [X, Y]
for i in range(2):
    cut[i].sort()
    for j in range(1, len(cut[i])):
        min_v[i] = min(min_v[i], cut[i][j] - cut[i][j - 1])
print(min_v[0] * min_v[1] * Z)

「水着」ゲットチャレンジ!

1<=N<=106が与えられるのでN! の最下位桁から続く0 をすべて除いた値の下位9桁を求める問題。
毎回109乗で余りを取っていけばいいかと思うのだが、5の2乗以上をかけた時にゼロが下に複数個ついて必要な桁の情報を持っていないようだったので59-106なので8桁余分に持って計算を進める。

N = int(input())
t = N
for i in range(2, N):
    t *= i
    while t % 10 == 0:
        t //= 10
    t %= 10**(9+8)
print(t % (10**9))

「つり目セット」ゲットチャレンジ!

'Ann'をN回出力、問題はいうことないけど、つり目セットは普通の目より好ましい。

print('Ann'*int(input()))

「ショートヘアセット」ゲットチャレンジ!

A+B

print(sum(int(input()),int(input())))

「ロングヘアセット」ゲットチャレンジ!

ソートして真ん中、ちなみにロングがいいよね!

print(sorted([input() for i in range(5)])[2])

「ポニーテールセット」ゲットチャレンジ!

カウントダウンを表示

N=int(input())
for i in range(N,0,-1):
    print(i)
print('0!!')

ツインテールセット」ゲットチャレンジ!

c_1/p_1, c_2/p_2を比較

c_1,p_1 = map(int, input().split())
c_2,p_2 = map(int, input().split())
if c_1/p_1 > c_2/p_2:
    print(1)
else:
    print(2)

「セーラー服セット」ゲットチャレンジ!

print('_'.join([input() for i in range(int(input()))]))

「カーディガンセット」ゲットチャレンジ!

t = 1
for i in range(2,int(input())+1):
    t *= i
print(t)

「眼帯」ゲットチャレンジ!

差集合を計算するB.difference(A)を初めて使いました。

N=int(input())
N=int(input())
A=set(map(int, input().split()))
N=int(input())
B=set(map(int, input().split()))
C =sorted(list(B.difference(A)))
if C:
    print(*C)
else:
    print('None')

「縞ニーソセット」ゲットチャレンジ!

ループで回しても制限時間間に合うんで

n=int(input())
m=int(input())
s = ''
for i in range(m):
    if i//n%2 == 0:
        s += 'R'
    else:
        s+='W'
print(s)