結果
問題 |
No.458 異なる素数の和
|
ユーザー |
![]() |
提出日時 | 2018-10-01 08:52:44 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 630 bytes |
コンパイル時間 | 1,318 ms |
コンパイル使用メモリ | 162,060 KB |
実行使用メモリ | 17,600 KB |
最終ジャッジ日時 | 2024-10-12 09:28:40 |
合計ジャッジ時間 | 8,022 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | TLE * 1 -- * 27 |
ソースコード
#include<bits/stdc++.h> using namespace std; int main(){ int N;cin>>N; vector<int> prime,p(200010,1); for(int i = 0;i<=200000;++i){ if(p[i]){ for(int j=2;j*i<=200000;++j){ p[i*j] = 0; } } } vector<int> dp(200001,0); for(int i=2;i<=200000;++i){ if(p[i]){ prime.push_back(i); dp[i] = 1; } } for(int i=0;i<prime.size();++i){ for(int sum = 0;sum<=200000;++sum){ if(sum-prime[i]<0) continue; if(dp[sum-prime[i]]) ++dp[sum]; } } cout<<dp[N]<<endl; }