본문 바로가기
백준

11070 : 피타고라스 기댓값 [백준 - Python]

by 청원뿔세포 2023. 9. 28.

https://www.acmicpc.net/problem/11070

 

11070번: 피타고라스 기댓값

입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫 줄에는 두 양의

www.acmicpc.net

득점과 실점을 저장할 배열을 만들고 계산하는 것 까지는 쉽다.

반례로 그냥 계산을 할 때,득점 실점이 모두 0일 경우 division Zero 가 뜰 수 있기 때문에 그 경우 if문으로 예외처리해야 한다.

 

 

T = int(input())
for _ in range(T):
    
    teamNum, gameNum = map(int,input().split())
    teamsScore = [0 for i in range(0,teamNum)]
    teamsLosePoint = [0 for i in range(0,teamNum)]
    W = [0 for i in range(0,teamNum)]

    for _ in range(gameNum):
        a,b,p,q = map(int, input().split())
        teamsScore[a-1] += p
        teamsLosePoint[a-1] += q
        teamsScore[b-1] += q
        teamsLosePoint[b-1] += p
    # print(teamsScore)
    # print(teamsLosePoint)
    # print(W)
    for i in range(teamNum):
        if teamsScore[i]**2+teamsLosePoint[i]**2 == 0:
            W[i]=0
        else:
            W[i] = (teamsScore[i]**2)/(teamsScore[i]**2+teamsLosePoint[i]**2)
        
    print(int(max(W)*1000))
    print(int(min(W)*1000))

댓글