提出 #64527159
ソースコード 拡げる
#include <iostream>
#include <algorithm>
#include <vector>
#include <random>
#include <chrono>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
using ll = long long;
const int MAXQ = 200000;
const int MAXVAL = 1000001;
struct Query
{
int index;
ll x, ans;
};
int q;
Query qs[MAXQ+2];
int lp[MAXVAL+2], lpjump[MAXVAL+2];
vector<int> primes;
void calcCiur()
{
lpjump[1] = 1;
for (int i = 2; i <= MAXVAL; i++) {
if (!lp[i]) {
lp[i] = i;
lpjump[i] = 1;
primes.push_back(i);
}
for (int j = 0; i * primes[j] <= MAXVAL; j++) {
lp[i * primes[j]] = primes[j];
if (primes[j] == lp[i]) {
lpjump[i * primes[j]] = lpjump[i];
break;
}
lpjump[i * primes[j]] = i;
}
}
}
bool isValid(ll x)
{
return (lpjump[x] != 1 && lpjump[lpjump[x]] == 1);
}
int main()
{
calcCiur();
cin >> q;
for (int i = 1; i <= q; i++) {
qs[i].index = i;
cin >> qs[i].x;
}
sort(qs+1, qs+q+1, [&](const Query &a, const Query &b) { return a.x < b.x; });
long long x = 6;
for (int i = 1; i <= q; i++) {
qs[i].ans = qs[i-1].ans;
while (x * x <= qs[i].x) {
if (isValid(x)) qs[i].ans = x * x;
x++;
}
}
sort(qs+1, qs+q+1, [&](const Query &a, const Query &b) { return a.index < b.index; });
for (int i = 1; i <= q; i++) {
cout << qs[i].ans << '\n';
}
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Ringo's Favorite Numbers 3 |
| ユーザ | Andrei_ierdnA |
| 言語 | C++ 17 (gcc 12.2) |
| 得点 | 425 |
| コード長 | 1408 Byte |
| 結果 | AC |
| 実行時間 | 122 ms |
| メモリ | 16280 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 425 / 425 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample00.txt |
| All | sample00.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| sample00.txt | AC | 16 ms | 11336 KiB |
| testcase00.txt | AC | 90 ms | 15992 KiB |
| testcase01.txt | AC | 93 ms | 16180 KiB |
| testcase02.txt | AC | 114 ms | 16080 KiB |
| testcase03.txt | AC | 116 ms | 16188 KiB |
| testcase04.txt | AC | 91 ms | 16280 KiB |
| testcase05.txt | AC | 51 ms | 13548 KiB |
| testcase06.txt | AC | 110 ms | 15852 KiB |
| testcase07.txt | AC | 116 ms | 16276 KiB |
| testcase08.txt | AC | 113 ms | 15932 KiB |
| testcase09.txt | AC | 122 ms | 16196 KiB |
| testcase10.txt | AC | 120 ms | 16192 KiB |
| testcase11.txt | AC | 116 ms | 16196 KiB |
| testcase12.txt | AC | 113 ms | 16072 KiB |
| testcase13.txt | AC | 117 ms | 16132 KiB |
| testcase14.txt | AC | 114 ms | 16028 KiB |
| testcase15.txt | AC | 116 ms | 16276 KiB |