結果

問題 No.316 もっと刺激的なFizzBuzzをください
ユーザー tubo28
提出日時 2015-12-09 02:06:51
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 600 bytes
コンパイル時間 1,352 ms
コンパイル使用メモリ 158,440 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-14 20:53:04
合計ジャッジ時間 2,435 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 28 WA * 5
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i = 0; i < (int)(n); i++)
#define all(n) begin(n), end(n)
using ll = long long;

ll lcm(ll a, ll b){
    return a/__gcd(a,b) * b;
}

ll solve(ll n, ll *a){
    int res = 0;
    rep(s,8){
        if(s == 0) continue;
        int sign = __builtin_popcount(s) & 1 ? 1 : -1;
        ll l = 1;
        rep(i,3) if(s >> i & 1) l = lcm(l, a[i]);
        res += sign*(n/l);
    }
    return res;
}

int main(){
    ll n, a[3];
    while(cin >> n){
        rep(i,3) cin >> a[i];
        cout << solve(n+1,a) - solve(1,a) << endl;
    }
}
0