import sys
input = sys.stdin.readline
MOD = 1000000007
M = int(input())
def cal(N,x):
if x == 1:
return N
v = cal(N,x//2)
if x%2 == 0:
return v*v%MOD
else:
return v*v*N%MOD
count = 0
for i in range(M):
N,S = map(int,input().split())
rN = cal(N,MOD-2)
count = (count + rN*S%MOD)%MOD
print(count)
지문을 읽다가 멀미나는 문제
mod는 대체 뭐고 모듈러는 뭔데 모듈러 역원이 튀어나오더니 페르마의 소정리 어쩌고 저쩌고 하는데 정말 읽다가 어지러워진다.
지문 읽기가 싫어서 며칠을 묵혀뒀던 문제
하지만 그에 반해 풀이는 정말정말 쉽다. 1629번 곱셈을 풀었고, 지문만 이해했다면 풀이법은 1초만에 떠오른다.
난이도가 골드인건 순전히 지문탓이 아닐까 ㅋㅋㅋ
그래도 여기서 나오는 페르마의 소정리나 모듈러 곱셈같은 개념은 분명히 후에 중요하게 쓰일 것이므로 이번을 맛보기라고 여기고 공부해놓는게 좋을 것이다.
오늘의 교훈) 페르마의 소정리에 대해서 찾아보자