Submission #41041627
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#include <atcoder/all>
using namespace atcoder;
using ll = long long;
vector<int> Eratosthenes(const int N) {
vector<bool> is_prime(N + 1, true);
vector<int> P;
for (int i = 2; i <= N; i++) {
if (is_prime[i]) {
for (int j = 2 * i; j <= N; j += i) {
is_prime[j] = false;
}
P.emplace_back(i);
}
}
return P;
}
int main() {
ll N;
cin >> N;
auto pa = Eratosthenes(400);
auto pb = Eratosthenes(10000 + 10);
auto pc = Eratosthenes(1e6 + 10);
vector<ll> sq;
for (int p : pc) {
sq.push_back((ll)p * p);
}
int ans = 0;
for (int i = 0; i < pa.size(); i++) {
ll a = pa[i];
int iterb = upper_bound(pb.begin(), pb.end(), a) - pb.begin();
for (int j = iterb; j < pb.size(); j++) {
ll b = pb[j];
int startc = upper_bound(sq.begin(), sq.end(), b * b) - sq.begin();
int endc =
lower_bound(sq.begin(), sq.end(), N / (a * a * b)) - sq.begin();
int tendc = -1;
for (int ec = endc - 10; ec < endc + 10; ec++) {
if (ec < 0 || ec >= pc.size()) continue;
ll c = pc[ec];
if (a * a * b * c * c <= N) tendc = ec;
}
ll sc = pc[startc], ec = pc[tendc];
if (tendc == -1) continue;
ans += max(tendc - startc + 1, 0);
}
}
cout << ans << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - AABCC |
| User | mtrh |
| Language | C++ (GCC 9.2.1) |
| Score | 400 |
| Code Size | 1575 Byte |
| Status | AC |
| Exec Time | 32 ms |
| Memory | 4608 KiB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:32:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
32 | for (int i = 0; i < pa.size(); i++) {
| ~~^~~~~~~~~~~
./Main.cpp:35:31: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
35 | for (int j = iterb; j < pb.size(); j++) {
| ~~^~~~~~~~~~~
./Main.cpp:42:34: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
42 | if (ec < 0 || ec >= pc.size()) continue;
| ~~~^~~~~~~~~~~~
./Main.cpp:46:16: warning: unused variable ‘sc’ [-Wunused-variable]
46 | ll sc = pc[startc], ec = pc[tendc];
| ^~
./Main.cpp:46:33: warning: unused variable ‘ec’ [-Wunused-variable]
46 | ll sc = pc[startc], ec = pc[tendc];
| ^~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| All | 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 | 32 ms | 4508 KiB |
| sample_02.txt | AC | 28 ms | 4516 KiB |
| test_01.txt | AC | 22 ms | 4540 KiB |
| test_02.txt | AC | 28 ms | 4440 KiB |
| test_03.txt | AC | 20 ms | 4516 KiB |
| test_04.txt | AC | 24 ms | 4380 KiB |
| test_05.txt | AC | 22 ms | 4512 KiB |
| test_06.txt | AC | 22 ms | 4516 KiB |
| test_07.txt | AC | 20 ms | 4524 KiB |
| test_08.txt | AC | 20 ms | 4520 KiB |
| test_09.txt | AC | 25 ms | 4516 KiB |
| test_10.txt | AC | 20 ms | 4380 KiB |
| test_11.txt | AC | 26 ms | 4408 KiB |
| test_12.txt | AC | 25 ms | 4608 KiB |
| test_13.txt | AC | 25 ms | 4556 KiB |
| test_14.txt | AC | 22 ms | 4512 KiB |
| test_15.txt | AC | 21 ms | 4388 KiB |