結果
問題 | No.1006 Share an Integer |
ユーザー |
![]() |
提出日時 | 2020-03-06 22:16:38 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 440 ms / 2,000 ms |
コード長 | 942 bytes |
コンパイル時間 | 1,909 ms |
コンパイル使用メモリ | 178,332 KB |
実行使用メモリ | 44,596 KB |
最終ジャッジ日時 | 2024-10-14 07:37:08 |
合計ジャッジ時間 | 6,426 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define rep(i,n) for(int i = 0; i < (n); i++) #define ALL(v) (v).begin(),(v).end() using ll = long long; using P = pair<int, int>; const int INF = 1e9; const long long LINF = 1e18; const long long MOD = 1e9 + 7; vector<int> eratos(int n){ vector<int> res(n + 1, 2); for (int i = 2; i <= n; i++) { for (int j = 2 * i; j <= n; j += i) { res[j]++; } } return res; } signed main(){ ll x; cin >> x; auto e = eratos(x); vector<int> f(x + 1); for (int i = 1; i <= x; i++){ f[i] = i - e[i]; } vector<pair<int, P>> v; for (int i = 1; i < x; i++) { v.emplace_back(pair<int, P>(abs(f[i] - f[x - i]), {i, x - i})); } sort(ALL(v)); int i = 0; while (i < v.size() && v[i].first == v[0].first){ cout << v[i].second.first << " " << v[i].second.second << endl; i++; } return 0; }