Submission #18225050


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

vector<bool> calc_prime(const int ub)
{
    vector<bool> is_prime(ub + 1, true);
    is_prime.at(0) = is_prime.at(1) = false;
    for (int i = 2; i < ub + 1; ++i) {
        if (!is_prime.at(i))
            continue;
        for (int j = 2 * i; j < ub + 1; j += i)
            is_prime.at(j) = false;
    }
    return is_prime;
}

vector<int> calc_sim2017(const int ub)
{
    auto is_prime = calc_prime(ub);
    vector<int> sim2017(ub + 1, 0);
    for (int N = 3; N < ub + 1; N += 2) { // 2017に似た数は奇数
        if (is_prime.at(N) && is_prime.at((N + 1) / 2))
            sim2017.at(N) = 1;
    }
    return sim2017;
}

int main()
{
    static const int ub = 1e+5;
    auto sim2017 = calc_sim2017(ub);
    vector<int> cumcnt(ub + 2, 0);
    for (int i = 0; i < ub + 1; ++i)
        cumcnt.at(i + 1) = cumcnt.at(i) + sim2017.at(i);
    int Q;
    cin >> Q;
    for (int i = 0; i < Q; ++i) {
        int l, r;
        cin >> l >> r;
        cout << cumcnt.at(r + 1) - cumcnt.at(l) << endl;
    }
}

Submission Info

Submission Time
Task D - 2017-like Number
User atug
Language C++ (GCC 9.2.1)
Score 400
Code Size 1053 Byte
Status AC
Exec Time 191 ms
Memory 3856 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 3
AC × 10
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
01.txt AC 191 ms 3788 KiB
02.txt AC 188 ms 3772 KiB
03.txt AC 184 ms 3772 KiB
04.txt AC 183 ms 3756 KiB
05.txt AC 175 ms 3856 KiB
06.txt AC 183 ms 3676 KiB
07.txt AC 184 ms 3752 KiB
sample_01.txt AC 7 ms 3680 KiB
sample_02.txt AC 7 ms 3720 KiB
sample_03.txt AC 5 ms 3720 KiB