結果
問題 | No.8035 2018 |
ユーザー |
![]() |
提出日時 | 2019-04-01 15:05:42 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
TLE
|
実行時間 | - |
コード長 | 2,357 bytes |
コンパイル時間 | 1,175 ms |
コンパイル使用メモリ | 120,284 KB |
実行使用メモリ | 300,992 KB |
最終ジャッジ日時 | 2024-11-25 02:26:12 |
合計ジャッジ時間 | 31,543 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | TLE * 3 |
other | TLE * 7 |
ソースコード
#include<iostream>#include<string>#include<cstdio>#include<vector>#include<cmath>#include<algorithm>#include<functional>#include<iomanip>#include<queue>#include<ciso646>#include<random>#include<map>#include<set>#include<complex>#include<bitset>#include<stack>#include<unordered_map>#include<utility>using namespace std;typedef long long ll;typedef unsigned int ui;const ll mod = 1000000007;typedef long double ld;const ll INF = 1e+14;typedef pair<int, int> P;#define stop char nyaa;cin>>nyaa;#define rep(i,n) for(int i=0;i<n;i++)#define per(i,n) for(int i=n-1;i>=0;i--)#define Rep(i,sta,n) for(int i=sta;i<n;i++)#define rep1(i,n) for(int i=1;i<=n;i++)#define per1(i,n) for(int i=n;i>=1;i--)#define Rep1(i,sta,n) for(int i=sta;i<=n;i++)typedef complex<ld> Point;const ld eps = 1e-8;const ld pi = acos(-1.0);typedef pair<ld, ld> LDP;typedef pair<ll, ll> LP;#define fr first#define sc secondconst int mn = 5150000;bool isp[mn + 1];vector<int> c[mn + 1];vector<int> v;void init() {fill(isp + 2, isp + mn + 1, true);Rep1(i, 2, mn) {if (!isp[i])continue;c[i].push_back(i);for (int j = 2 * i; j <= mn; j += i) {isp[j] = false; c[j].push_back(i);}}Rep1(i, 2, mn) {int num = 0; int cop = i;if (c[i].size()>2)continue;else if (c[i].size() == 2) {if ((i / c[i][0]) % c[i][0] == 0 || (i / c[i][1]) % c[i][1] == 0)continue;}else if (c[i].size() == 1) {int cnt = 0;int cop = i;while (cop%c[i][0]==0) {cop /= c[i][0]; cnt++;if (cnt > 3)break;}if (cnt != 3)continue;}v.push_back(i);}}bool testmincase(int n, int m) {if (isp[n])return false;vector<bool> used(n, false);queue<int> q; q.push(0); used[0] = true;rep(i, n) {if (isp[i + 1])used[i] = true;}while (!q.empty()) {int id = q.front(); q.pop();if (id%m) {if (!used[id - 1]) {used[id - 1] = true; q.push(id - 1);}}if ((id%m) < m - 1 && id < n - 1) {if (!used[id + 1]) {used[id + 1] = true; q.push(id + 1);}}if (id - m >= 0) {if (!used[id - m]) {used[id - m] = true; q.push(id - m);}}if (id + m < n) {if (!used[id + m]) {used[id + m] = true; q.push(id + m);}}}return used[n - 1];}void solve() {init(); int n; cin >> n;cout << v[n - 1] << endl;}int main() {solve();//stopreturn 0;}