結果
問題 |
No.1352 Three Coins
|
ユーザー |
![]() |
提出日時 | 2021-01-17 16:38:10 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 33 ms / 2,000 ms |
コード長 | 880 bytes |
コンパイル時間 | 1,605 ms |
コンパイル使用メモリ | 168,516 KB |
実行使用メモリ | 13,184 KB |
最終ジャッジ日時 | 2024-12-23 09:37:54 |
合計ジャッジ時間 | 3,519 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 34 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define REP(i,a,n) for(int i=(a); i<(int)(n); i++) #define rep(i,n) REP(i,0,n) #define FOR(it,c) for(__typeof((c).begin()) it=(c).begin(); it!=(c).end(); ++it) #define ALLOF(c) (c).begin(), (c).end() typedef long long ll; typedef unsigned long long ull; ll gcd(ll a, ll b){return (b==0?a:gcd(b,a%b));} ll lcm(ll a, ll b){return a/gcd(a,b)*b;} bool dp[10000005]; int main(){ ll A, B, C; cin >> A >> B >> C; if(gcd(A,B) != 1 && gcd(B,C) != 1 && gcd(A,C) != 1 && gcd(gcd(A,B), C) != 1){ cout << "INF" << endl; return 0; } dp[0] = true; rep(i,10000005){ if(!dp[i]) continue; if(i+A<10000005) dp[i+A] = true; if(i+B<10000005) dp[i+B] = true; if(i+C<10000005) dp[i+C] = true; } int ret = 0; for(int i=10000004; i>0; i--){ if(!dp[i]) ret++; } cout << ret << endl; return 0; }