結果
| 問題 |
No.1006 Share an Integer
|
| ユーザー |
momoyuu
|
| 提出日時 | 2022-08-24 03:45:52 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 2,141 bytes |
| コンパイル時間 | 3,533 ms |
| コンパイル使用メモリ | 263,072 KB |
| 実行使用メモリ | 16,788 KB |
| 最終ジャッジ日時 | 2024-10-11 09:19:50 |
| 合計ジャッジ時間 | 7,615 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 5 RE * 3 TLE * 1 -- * 10 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
template<class t> using vc = vector<t>;
template<class t> using vvc = vc<vc<t>>;
using pi = pair<int,int>;
using vi = vc<int>;
using vvi = vvc<int>;
#define rep(i,a,b) for (ll i = a; i < b; i++)
#define irep(i,a,b) for (int i = a; i > b; i--)
#define print(n) cout << n << '\n'
#define pritn(n) print(n)
#define rup(a,b) (a+b-1)/b
#define input(A,N) rep(i,0,N) cin>>A[i]
#define chmax(a,b) a = max(a,b)
#define chmin(a,b) a = min(a,b)
ll calc(ll n,map<ll,int> &dd,set<ll> &ddd){
ll aa = n;
map<ll,int> d;
ll m = sqrt(n);
for(auto i:ddd){
while(n%i==0){
d[i] += 1;
n /= i;
}
if(i>n) break;
if (dd[n] != 0){
ll ans = 1;
for (auto itr:d){
ans *= itr.second+1;
}
ans *= dd[n];
dd[aa] = ans;
return ans;
}
}
if (n!= 1) d[n] += 1;
ll ans = 1;
for(auto itr:d){
ans *= itr.second+1;
}
return ans;
}
void calcc(set<ll> &d,ll n){
vc<ll> l(n,0);
rep(i,2,n+1){
if (l[i]) continue;
d.insert(i);
ll now = i;
while (now<=n){
l[now] = 1;
now += i;
}
}
d.size();
return;
}
set<ll> ddd;
ll now = 100000;
set<pair<ll,ll>> ans;
map<ll,int> dd;
int main(){
cout << fixed << setprecision(15);
ll X;
cin >> X;
ll x = X/2;
calcc(ddd,x);
rep(i,1,x+1){
ll j = X - i;
ll a = i - calc(i,dd,ddd);
ll b = j - calc(j,dd,ddd);
if (now < abs(a-b)){
continue;
}else if (now>abs(a-b)){
ans.clear();
now = abs(a-b);
}
ans.insert(pair<ll,ll>(i,j));
if(i!=j){
ans.insert(pair<ll,ll>(j,i));
}
}
// auto g = [](pair<ll,ll> a,pair<ll,ll> b){return a<b;};
// sort(ans.begin(),ans.end(),g);
for (auto itr:ans){
cout<<itr.first<<" "<<itr.second<<'\n';
}
//system("pause");
return 0;
}
momoyuu