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間を移動しないように注意だと思う。