0
0

More than 3 years have passed since last update.

ABC179参戦記

Posted at

なんだかんだ言いつつやったりやらなかったりです。
CがTLEする解法しかわからないのでそこで終了しました。

A.Plural Form
S[-1]が"s"なら"es"、そうでないなら"s"を付けてやればよいですね。

s=input()
print(s+"es" if s[-1]=="s" else s+"s")

B.Go to Jail
短絡評価するからこういう条件式でいいはず。

n=int(input())
d=[[int(i)for i in input().split()]for j in range(n)]
res="No"
for i in range(n-2):
    if d[i][0]==d[i][1] and d[i+1][0]==d[i+1][1] and d[i+2][0]==d[i+2][1]:
        res="Yes"
        break
print(res)

C.A x B + C
1<=i<Nとなる各iに対してN-iの約数の数を足していく感じかなーと思ったのですがTLEしました。
計算量が$N\sqrt{N}$なので$10^9$になってダメなんですね。
ここからどうするのかわからんので終わり。

def aaa(x):
    res=[]
    for i in range(1,int(x**0.5)+1):
        if x%i==0:
            res.append(i)
            if x/i != i:
                res.append(x/i)
    return len(res)

n=int(input())
res=0

for i in range(1,n):
    res+=aaa(n-i)
print(res)

解説みたら「Cは1つしかないのでA*B<Nとなる(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