結果
問題 | No.1352 Three Coins |
ユーザー |
![]() |
提出日時 | 2021-01-17 14:57:36 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 186 ms / 2,000 ms |
コード長 | 1,646 bytes |
コンパイル時間 | 2,111 ms |
コンパイル使用メモリ | 78,116 KB |
実行使用メモリ | 41,856 KB |
最終ジャッジ日時 | 2024-12-23 09:36:26 |
合計ジャッジ時間 | 7,852 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 34 |
ソースコード
import java.util.Arrays;import java.util.Scanner;public class Main {public static void main(String[] args) throws Exception {Scanner sc = new Scanner(System.in);int[] a = new int[3];for (int i = 0; i < 3; i++) {a[i] = sc.nextInt();}sc.close();int g = 0;for (int i = 0; i < 3; i++) {g = gcd(g, a[i]);}if (g > 1) {System.out.println("INF");return;}Arrays.sort(a);int[] c = new int[a[0]];Arrays.fill(c, Integer.MAX_VALUE);c[0] = 0;for (int i = 1; i < 3; i++) {for (int j = 1; j < c.length; j++) {int x = 0;int end = a[0] * a[i] / gcd(a[0], a[i]);while (x < end) {x += a[i];if (x % a[0] == j) {c[j] = Math.min(c[j], x / a[0]);break;}}}}int[] c2 = new int[a[1]];Arrays.fill(c2, Integer.MAX_VALUE);c2[0] = 0;for (int j = 1; j < c2.length; j++) {int x = 0;int end = a[1] * a[2] / gcd(a[1], a[2]);while (x < end) {x += a[2];if (x % a[1] == j) {c2[j] = Math.min(c2[j], x / a[1]);break;}}}for (int j = 1; j < c.length; j++) {int x = j;int e = 1;while (e < c[j]) {int j2 = x % a[1];int d = x / a[1];if (c2[j2] <= d) {c[j] = Math.min(c[j], x / a[0]);break;}x += a[0];}}int ans = 0;for (int i = 1; i < a[0]; i++) {// if (c[i] == Integer.MAX_VALUE) {// System.out.println("INF");// return;// }ans += c[i];}System.out.println(ans);}static int gcd(int a, int b) {return b == 0 ? a : gcd(b, a % b);}// static int lcm(int a, int b) {// return a * b / gcd(a, b);// }}