AtCoder Beginner Contest 075
はい。
https://beta.atcoder.jp/contests/abc075
A - One out of Three
Python3
a=[int(i) for i in input().split()] a.sort() print(a[0] if a[1]==a[2] else a[2])
ソートして中央値と違う値が一つしかないもののはず。
B - Minesweeper
Python3
d=[-1,0,1] for i in range(h): a=list(input()) l.append(a) for i in range(h): for j in range(w): cnt=0 for x in d: for y in d: if 0<=i+x<h and 0<=j+y<w: if l[i+x][j+y]=="#": cnt+=1 if l[i][j]==".": l[i][j]=cnt for i in l: print("".join(map(str,i)))
力技で全部全部やったけどもなんか楽な方法あったのかな??
C - Bridge
Python3
n,m=map(int,input().split()) x=[] d=[[] for i in range(n)] for i in range(m): a,b=map(int,input().split()) d[a-1].append(b-1) d[b-1].append(a-1) x.append((a-1,b-1)) ans=0 for i in x: t=set([i[0]]) r=set() while len(t): o=t.pop() for j in d[o]: if j not in r and len(set([o,j])&set([i[0],i[1]]))!=2: r.add(j) t.add(j) if len(r)!=n: ans+=1 print(ans)
入力受取時に辺a,bと頂点aからbに移動できる、頂点bからaに移動できることをまとめておく。入力受取後に各辺を1つ除いた際に全部の頂点に移動できるかを確認する。試すのは頂点aからスタートだけで非連結の頂点があるかを確認できる。移動できるかを確認する際に除いた扱いのa,b間を移動しないように注意だと思う。