結果
問題 | No.537 ユーザーID |
ユーザー |
|
提出日時 | 2019-10-08 02:47:34 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 15 ms / 2,000 ms |
コード長 | 817 bytes |
コンパイル時間 | 1,614 ms |
コンパイル使用メモリ | 173,540 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-15 16:19:09 |
合計ジャッジ時間 | 2,812 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include "bits/stdc++.h" using namespace std; typedef long long int ll; vector<ll > divisor(ll n) { vector< ll > div; for(ll i = 1; i * i <= n; i++) { if(n % i == 0) { div.push_back(i); //重複許すマジ if(i * i != n) div.push_back(n / i); } } sort(div.begin(), div.end()); return (div); } int main(){ ll N; cin >> N; vector<ll > div = divisor(N); ll ans = div.size(); map<string, ll> mp; for(ll i = 0; i < div.size() / 2; i++){ string t1 = to_string(div[i]); string t2 = to_string(div[div.size() - 1 - i]); mp[t1+t2]++; mp[t2+t1]++; } if(div.size() % 2 != 0){ string t = to_string(div[div.size() / 2 + 1]); mp[t + t]++; } cout << mp.size() << endl; }