結果
問題 | No.141 魔法少女コバ |
ユーザー |
![]() |
提出日時 | 2018-07-17 19:51:39 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 121 ms / 5,000 ms |
コード長 | 1,186 bytes |
コンパイル時間 | 1,842 ms |
コンパイル使用メモリ | 77,524 KB |
実行使用メモリ | 41,684 KB |
最終ジャッジ日時 | 2024-11-26 08:48:24 |
合計ジャッジ時間 | 14,215 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 93 |
ソースコード
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scan = new Scanner(System.in);int N = scan.nextInt();int M = scan.nextInt();int min = Math.min(N, M);int max = Math.max(N, M);scan.close();if(N == M) {System.out.println(0);System.exit(0);}// m <= n// ユークリッドの互除法int n = max;int m = min;int r = -1;while (r != 0) {r = n % m;n = m;m = r;}int a = N / n;int b = M / n;// M / N = a / bint cnt = 0;int d1, n1;if(a > b) {d1 = b;n1 = a;}else {d1 = a;n1 = b;cnt ++;}if(d1 == 1) {cnt += n1 - 1;System.out.println(cnt);System.exit(0);}int d2, n2;int cnt1 = 0;while(n1 != 1) {int t = n1 / d1;cnt1 ++;cnt += t;//System.out.println("t " + t + " cnt " + cnt);//System.out.println(n1 + " " + d1);d2 = n1 % d1;n2 = d1;n1 = n2;d1 = d2;if(d1 == 1) {cnt += n1;break;}}System.out.println(cnt + cnt1 - 1);}}