結果

問題 No.316 もっと刺激的なFizzBuzzをください
ユーザー ferinferin
提出日時 2017-03-01 22:13:31
言語 C++11
(gcc 11.4.0)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 1,783 bytes
コンパイル時間 1,165 ms
コンパイル使用メモリ 159,220 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-06-12 22:46:58
合計ジャッジ時間 2,098 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,812 KB
testcase_01 AC 1 ms
6,944 KB
testcase_02 AC 1 ms
6,940 KB
testcase_03 AC 2 ms
6,944 KB
testcase_04 AC 1 ms
6,944 KB
testcase_05 AC 2 ms
6,944 KB
testcase_06 AC 2 ms
6,940 KB
testcase_07 AC 2 ms
6,944 KB
testcase_08 AC 1 ms
6,948 KB
testcase_09 AC 1 ms
6,940 KB
testcase_10 AC 2 ms
6,940 KB
testcase_11 AC 1 ms
6,940 KB
testcase_12 AC 1 ms
6,944 KB
testcase_13 AC 2 ms
6,940 KB
testcase_14 AC 1 ms
6,940 KB
testcase_15 AC 2 ms
6,944 KB
testcase_16 AC 1 ms
6,944 KB
testcase_17 AC 1 ms
6,940 KB
testcase_18 AC 1 ms
6,940 KB
testcase_19 AC 1 ms
6,940 KB
testcase_20 AC 1 ms
6,940 KB
testcase_21 AC 2 ms
6,944 KB
testcase_22 AC 1 ms
6,940 KB
testcase_23 AC 1 ms
6,940 KB
testcase_24 AC 1 ms
6,940 KB
testcase_25 AC 1 ms
6,940 KB
testcase_26 AC 1 ms
6,944 KB
testcase_27 AC 1 ms
6,940 KB
testcase_28 AC 1 ms
6,940 KB
testcase_29 AC 2 ms
6,940 KB
testcase_30 AC 2 ms
6,940 KB
testcase_31 AC 1 ms
6,940 KB
testcase_32 AC 1 ms
6,944 KB
testcase_33 AC 1 ms
6,940 KB
testcase_34 AC 2 ms
6,940 KB
testcase_35 AC 2 ms
6,940 KB
testcase_36 AC 1 ms
6,944 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<ll> VL;
typedef vector<VL> VVL;
typedef pair<int, int> PII;

#define FOR(i, a, n) for (ll i = (ll)a; i < (ll)n; ++i)
#define REP(i, n) FOR(i, 0, n)
#define ALL(x) x.begin(), x.end()
#define MOD 1000000007
#define INF (1LL<<25)     //33554432
#define PI 3.14159265359
#define EPS 1e-12
#define int ll

signed main(void)
{
  int n, a, b, c;
  cin >> n >> a >> b >> c;
  bool bb = true, cc = true;
  if(b%a == 0) bb = false;
  if(c%a == 0) cc = false;
  if(c%b == 0) cc = false;

  if(bb && cc) {
    int t1 = a, t2 = b, t3 = b, t4 = c, t5 = a, t6 = c;
    while(t1 != 0) {int tmp = t1; t1 = t2 % t1; t2 = tmp;}
    while(t3 != 0) {int tmp = t3; t3 = t4 % t3; t4 = tmp;}
    while(t5 != 0) {int tmp = t5; t5 = t6 % t5; t6 = tmp;}
    int tt = a*b/t2, t7 = min(tt, c), t8 = max(tt, c);
    while(t7 != 0) {int tmp = t7; t7 = t8 % t7; t8 = tmp;}
    //cout << t2 << " " << t4 << " " << t6 << " " << t8 << endl;
    //cout << n/a << " " << n/b << " " << n/c << endl;
    //cout << n/(a*b/t2) << " " << (n/t4)/((b/t4)*(c/t4)) << " " << (n/t6)/((c/t6)*(a/t6)) << " " << (n/t8)/((a/t8)*(b/t8)*(c/t8)) << endl;
    cout << n/a + n/b + n/c - n/(a*b/t2) - n/(b*c/t4) - n/(c*a/t6) + n/(tt*c/t8) << endl;
  } else if(bb && !cc) {
    int t1 = a, t2 = b;
    while(t1 != 0) {int tmp = t1; t1 = t2 % t1; t2 = tmp;}
    n /= t2; a /= t2; b /= t2;
    cout << n/a + n/b - n/(a*b) << endl;
  } else if(!bb && cc) {
    int t1 = a, t2 = c;
    while(t1 != 0) {int tmp = t1; t1 = t2 % t1; t2 = tmp;}
    n /= t2; a /= t2; c /= t2;
    cout << n/a + n/c - n/(a*c) << endl;
  } else if(!bb && !cc) {
    cout << n/a << endl;
  } else {
    assert(false);
  }

  return 0;
}
0