結果
問題 | No.1200 お菓子配り-3 |
ユーザー |
![]() |
提出日時 | 2020-08-30 01:33:44 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 3,183 ms / 4,000 ms |
コード長 | 1,061 bytes |
コンパイル時間 | 209 ms |
コンパイル使用メモリ | 82,152 KB |
実行使用メモリ | 78,104 KB |
最終ジャッジ日時 | 2024-11-20 23:08:04 |
合計ジャッジ時間 | 22,667 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 31 |
ソースコード
import sysread = sys.stdin.buffer.readreadline = sys.stdin.buffer.readlinereadlines = sys.stdin.buffer.readliness = int(readline())data = list(map(int,read().split()))def make_divisors(n):divisors = []for i in range(1,int(n**0.5)+1):if(n%i == 0):divisors.append(i)if(i!= n//i):divisors.append(n//i)return divisorsans = []it = iter(data)for x,y in zip(it,it):if(x==1)|(y==1):ans.append(0)continuecomb = 0dif = abs(x-y)if(dif==0):comb=x-1divisors = set(make_divisors(x))comb += len(divisors)-1if(2 in divisors):comb -= 1ans.append(comb)continuedivisors = make_divisors(dif)for di in divisors:xy_sum = x+yif(xy_sum%(di+2)!=0):continuebc_dif = dif//dibc_sum = xy_sum//(di+2)if(bc_sum<=bc_dif)|((bc_sum-bc_dif)%2==1):continuecomb += 1ans.append(comb)print('\n'.join(map(str,ans)))