結果
| 問題 |
No.1006 Share an Integer
|
| ユーザー |
momoyuu
|
| 提出日時 | 2022-08-24 03:22:29 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,552 bytes |
| コンパイル時間 | 3,368 ms |
| コンパイル使用メモリ | 262,012 KB |
| 実行使用メモリ | 10,496 KB |
| 最終ジャッジ日時 | 2024-10-11 08:57:26 |
| 合計ジャッジ時間 | 6,878 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 8 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 (int 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> d;
ll m = sqrt(n);
rep(i,2,m+1){
while(n%i==0){
d[i] += 1;
n /= i;
}
}
if (n!= 1) d[n] += 1;
ll ans = 1;
for(auto itr:d){
ans *= itr.second+1;
}
return ans;
}
int main(){
cout << fixed << setprecision(15);
ll X;
cin >> X;
ll x = X/2;
ll now = 100000;
vc<pair<ll,ll>> ans;
rep(i,1,x+1){
ll j = X - i;
ll a = i - calc(i);
ll b = j - calc(j);
if (now < abs(a-b)){
continue;
}else if (now>abs(a-b)){
ans.clear();
now = abs(a-b);
}
ans.push_back(pair<ll,ll>(i,j));
if(i!=j){
ans.push_back(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