Submission #616099


Source Code Expand

#include <cstdlib>
#include <cmath>
#include <climits>
#include <cfloat>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <deque>
#include <complex>
#include <stack>
#include <queue>
#include <cstdio>
#include <cctype>
#include <cstring>
#include <ctime>
#include <iterator>
#include <bitset>
#include <numeric>
#include <list>
#include <iomanip>

#include <array>
#include <tuple>
#include <initializer_list>
#include <unordered_set>
#include <unordered_map>
#include <forward_list>

using namespace std;
#define all(c) begin(c), end(c)
using ll = long long;
using pii = pair<int, int>;
using vi = vector<int>;

ll gcd(ll a, ll b) {
    return b ? gcd(b, a%b) : a;
}
ll lcm(ll a, ll b) {
    return a / gcd(a, b)*b;
}
ll popcount(ll x) {
    return x ? x % 2 + popcount(x / 2) : x;
}
ll solve(ll n) {
    ll nico = 25;
    ll ans = 0;
    vector<ll> nicos;
    while (nico <= n) {
        nicos.emplace_back(nico);
        nico = nico * 100 + 25;
    }
    int sz = nicos.size();
    for (int S = 1; S < 1 << sz; S++) {
        int c = popcount(S);
        ll x = 1;
        for (int i = 0; i < sz; i++) {
            if (S >> i & 1) x = lcm(x, nicos[i]);
            if (x > n) goto END;
        }
        if (c & 1) {
            ans -= n/x;
        } else {
            ans += n/x;
        }
    END:;
    }
    return -ans;
}

int main() {
    ll n;
    while (cin >> n) {
        cout << solve(n) << endl;
    }
}

Submission Info

Submission Time
Task A - ニコニコ数
User tubo28
Language C++11 (GCC 4.9.2)
Score 60
Code Size 1647 Byte
Status AC
Exec Time 26 ms
Memory 928 KB

Judge Result

Set Name Sample Subtask1
Score / Max Score 0 / 0 60 / 60
Status
AC × 2
AC × 17
Set Name Test Cases
Sample sample_01.txt, sample_02.txt
Subtask1 sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt
Case Name Status Exec Time Memory
sample_01.txt AC 25 ms 716 KB
sample_02.txt AC 23 ms 920 KB
test_01.txt AC 23 ms 800 KB
test_02.txt AC 23 ms 924 KB
test_03.txt AC 23 ms 924 KB
test_04.txt AC 24 ms 676 KB
test_05.txt AC 24 ms 804 KB
test_06.txt AC 25 ms 928 KB
test_07.txt AC 24 ms 800 KB
test_08.txt AC 25 ms 676 KB
test_09.txt AC 24 ms 924 KB
test_10.txt AC 26 ms 796 KB
test_11.txt AC 24 ms 800 KB
test_12.txt AC 26 ms 924 KB
test_13.txt AC 25 ms 924 KB
test_14.txt AC 24 ms 804 KB
test_15.txt AC 25 ms 924 KB