結果
問題 | No.1006 Share an Integer |
ユーザー |
![]() |
提出日時 | 2020-06-14 18:51:23 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 11 ms / 2,000 ms |
コード長 | 759 bytes |
コンパイル時間 | 1,792 ms |
コンパイル使用メモリ | 179,012 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-27 16:15:03 |
合計ジャッジ時間 | 2,594 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include<bits/stdc++.h> using namespace std; using ll = long long; const int D = 200; int divisor(ll n){ vector<ll> res; for(ll i = 1LL; i * i <= n; i++){ if(n % i == 0){ res.push_back(i); ll j = n / i; if(i != j)res.push_back(j); } } return res.size(); } int main() { int x; cin >> x; map<int,vector<pair<int,int>>> mp; int a = x / 2, b = x - (x / 2); for(int i = -D; i <= D; i++) { if(a + i <= 0 || b - i <= 0)continue; const int A = a + i, B = b - i; mp[abs((A - divisor(A)) - (B - divisor(B)))].push_back({A, B}); } for(auto i : mp) { for(auto j : i.second)cout << j.first << " " << j.second << endl; return 0; } }