提出 #72181588
ソースコード 拡げる
#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <chrono>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <tuple>
#include <typeinfo>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>
using ll = long long;
using ld = long double;
using namespace std;
#define endl "\n"
#define ff first
#define ss second
#define forn(i,n) for(int i=0;i<n;i++)
#define dbgv(v) cout<<#v<<" "<<v<<endl
#define dbga(a,n) forn(i,n-1) {cout<<a[i]<<' ';} cout<<a[n-1]<<'\n';
#define all(v) (v).begin(), (v).end()
const int N = 1e7 + 5;
int lp[N],c[N],st[N];
vector<int> pr;
void pre(){
st[1]=0;
for(int i=2;i<N;i++){
if(lp[i]==0){
lp[i]=i;
c[i]=1;
pr.push_back(i);
if(i%4==3) st[i]=-1;
else if(i==2) st[i]=0;
else st[i]=1;
}
for(auto p:pr){
if(p>lp[i]||(ll)i*p>=N) break;
int x=i*p;
lp[x]=p;
if(lp[i]==p) c[x]=c[i]+1;
else c[x]=1;
int y=i;
if(c[x]>1) y/=p;
int ps=st[y];
if(ps==-1){
st[x]=-1;
}else if(p==2){
st[x]=ps;
}else if(p%4==3){
if(c[x]%2!=0) st[x]=-1;
else st[x]=ps;
}else{
if(ps!=0) st[x]=-1;
else{
if(c[x]==1) st[x]=1;
else if(c[x]==2) st[x]=2;
else st[x]=-1;
}
}
}
}
}
void solve(){
int n;
if(cin>>n){
vector<int> ans;
for(int i=1;i<=n;i++){
if(st[i]==1||st[i]==2) ans.push_back(i);
}
cout<<ans.size()<<endl;
int sz=ans.size();
forn(i,sz){
cout<<ans[i]<<(i==sz-1?"":" ");
}
cout<<endl;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
pre();
int T = 1;
while(T--){
solve();
}
return 0;
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | C - 2026 |
| ユーザ | SummitDevil |
| 言語 | C++23 (GCC 15.2.0) |
| 得点 | 300 |
| コード長 | 2636 Byte |
| 結果 | AC |
| 実行時間 | 176 ms |
| メモリ | 130812 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 300 / 300 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_corner_00.txt, 02_corner_01.txt, 02_corner_02.txt, 02_corner_03.txt, 02_corner_04.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 00_sample_00.txt | AC | 121 ms | 124636 KiB |
| 00_sample_01.txt | AC | 121 ms | 124664 KiB |
| 00_sample_02.txt | AC | 121 ms | 124780 KiB |
| 01_random_00.txt | AC | 143 ms | 127200 KiB |
| 01_random_01.txt | AC | 169 ms | 129628 KiB |
| 01_random_02.txt | AC | 145 ms | 127052 KiB |
| 01_random_03.txt | AC | 171 ms | 130020 KiB |
| 01_random_04.txt | AC | 138 ms | 125096 KiB |
| 01_random_05.txt | AC | 149 ms | 127880 KiB |
| 01_random_06.txt | AC | 144 ms | 126332 KiB |
| 01_random_07.txt | AC | 140 ms | 126240 KiB |
| 01_random_08.txt | AC | 148 ms | 127548 KiB |
| 01_random_09.txt | AC | 174 ms | 130428 KiB |
| 02_corner_00.txt | AC | 124 ms | 124780 KiB |
| 02_corner_01.txt | AC | 176 ms | 130812 KiB |
| 02_corner_02.txt | AC | 174 ms | 130752 KiB |
| 02_corner_03.txt | AC | 175 ms | 130784 KiB |
| 02_corner_04.txt | AC | 173 ms | 130748 KiB |