わかさぎのブログ

プログラミング、Atcoderの勉強とか

Atcoder

AtCoder Beginner Contest 204 C - Tour

BFS N,M=map(int,input().split()) ab=[] for i in range(M): tmp=list(map(int,input().split())) ab.append(tmp) from collections import defaultdict,deque graph=defaultdict(list) for i in range(M): l=ab[i][0] r=ab[i][1] graph[l].append(r) #grap…

AtCoder Beginner Contest 068 Cat Snuke and a Voyage

N,M=map(int,input().split()) ab=[] for i in range(M): tmp=list(map(int,input().split())) ab.append(tmp) from collections import defaultdict graph=defaultdict(list) for i in range(M): l=ab[i][0] r=ab[i][1] graph[l].append(r) graph[r].append…

AtCoder Beginner Contest 116 C - Grand Garden

N=int(input()) H=list(map(int,input().split())) inf=1000 ans=0 def func(L,R): global H,ans if L>=R: return mi=inf for i in range(L,R): mi=min(mi,H[i]) ans+=mi for i in range(L,R): H[i]-=mi zero=[] zero.append(-1) for i in range(L,R): if H[…

AtCoder Beginner Contest 139 C - Lower

from itertools import groupby N=int(input()) h=list(map(int,input().split())) g=[] for i,j in enumerate(h): if i==0: pass else: if h[i]-h[i-1]>0: g.append(False) else: g.append(True) ans=0 for k,g in groupby(g): if k==True: moji=len(list(g…

AtCoder Beginner Contest 019 B - 高橋くんと文字列圧縮

from itertools import groupby S=list(input()) ans="" for k,g in groupby(S): moji=list(g) kosu=len(moji) char=moji[0] ans+=str(char)+str(kosu) print(ans)

AtCoder Beginner Contest 143 C - Slimes

from itertools import groupby N=int(input()) S=list(input()) count=0 for k,g in groupby(S): count+=1 print(count)

AtCoder Beginner Contest 081 C - Not so Diverse

N,K=map(int,input().split()) a=list(map(int,input().split())) buk=[0 for i in range(1,200001)] for i in a: buk[i]+=1 count=0 for i in buk: if i!=0: count+=1 buk=[i for i in buk if i>0] delete=count-K if delete<=0: print(0) else: div=sorted…

AtCoder Beginner Contest 200 C - Ringo's Favorite Numbers 2

コード N=int(input()) a=list(map(int,input().split())) mod=200 b=[i%200 for i in a] from collections import defaultdict di=defaultdict(int) for i in b: di[i]+=1 result=0 for i in range(200): n=di[i] result+=n*(n-1)//2 print(result) 考え方 …

AtCoder Beginner Contest 058 C - 怪文書

コード from collections import defaultdict N=int(input()) s=[] for i in range(N): tmp=list(input()) s.append(tmp) data=[] for i in s: tmp=defaultdict(int) for j in i: tmp[j]+=1 data.append(tmp) setset=[set() for i in range(len(data))] for …

AtCoder Beginner Contest 073 C - Write and Erase

コード from collections import defaultdict N=int(input()) a=[] for i in range(N): tmp=int(input()) a.append(tmp) di=defaultdict(int) for i in a: di[i]=1-di[i] count=0 for k,v in di.items(): if v==1: count+=1 print(count) 考え方 defaultdict…

AtCoder Beginner Contest 082 C - Good Sequence

from collections import defaultdict N=int(input()) a=list(map(int,input().split())) di=defaultdict(int) for i in a: di[i]+=1 lost=0 for key,kosu in di.items(): #print(key,kosu) if kosu

鹿本 例題15 スプリンクラー

N,M,Q=map(int,input().split()) uv=[[0,0]] for i in range(M): tmp=list(map(int,input().split())) uv.append(tmp) color=[0]+list(map(int,input().split())) s=[0] for i in range(Q): tmp=list(map(int,input().split())) s.append(tmp) class Point()…

AtCoder Beginner Contest 274 D - Robot Arms 2

N,x,y=map(int,input().split()) A=list(map(int,input().split())) M=10000 dp1=[False for i in range(-10000,10001)] dp2=[False for i in range(-10000,10001)] dp3=[0 for i in range(-10000,10001)] dp1[A[0]]=True dp2[0]=True for i in range(1,N): …

AtCoder Beginner Contest 275 C - Counting Squares

s=[] for i in range(9): tmp=list(input()) s.append(tmp) def nagasa(r1,r2): res=(r1[0]-r2[0])**2+(r1[1]-r2[1])**2 ans=pow(res,0.5) return ans zahyou=[] for i in range(9): for j in range(9): if s[i][j]=="#": zahyou.append((i,j)) from itertoo…

AtCoder Beginner Contest 276 C - Previous Permutation

N=int(input()) p=list(map(int,input().split())) def prev_permutation(a: list, l: int = 0, r: int = None) -> bool: if r is None: r = len(a) - 1 for i in range(r - 1, l - 1, -1): if a[i] > a[i + 1]: for j in range(r, i, -1): if a[i] > a[j]: …

AtCoder Beginner Contest 276 B - Adjacency List

N,M=map(int,input().split()) ab=[] for i in range(M): tmp=list(map(int,input().split())) ab.append(tmp) ab.insert(0,[0,0]) data=[[] for i in range(N+1)] for i in range(1,M+1): l=ab[i][0] r=ab[i][1] data[l].append(r) data[r].append(l) del d…

AtCoder Beginner Contest 276 A - Rightmost

S=list(input()) count=-1 for i,j in enumerate(S): if j=="a": count=i+1 print(count)

AtCoder Beginner Contest 276 D - Divide by 2 or 3

提出コード N=int(input()) a=list(map(int,input().split())) from functools import reduce import math def my_gcd(*numbers): return reduce(math.gcd, numbers) gcd=my_gcd(*a) a=[i/gcd for i in a] def prime_factorize(n): a = [] while n % 2 == 0:…