結果
| 問題 |
No.537 ユーザーID
|
| コンテスト | |
| ユーザー |
@abcde
|
| 提出日時 | 2019-02-24 10:28:07 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 15 ms / 2,000 ms |
| コード長 | 1,327 bytes |
| コンパイル時間 | 1,824 ms |
| コンパイル使用メモリ | 168,788 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-12-18 00:53:40 |
| 合計ジャッジ時間 | 3,157 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 32 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main() {
// 1. 入力情報取得.
LL N;
cin >> N;
// 2. ユーザーIDの末尾につける数 X は?
// --- (ロジック誤り: ここから) --------------------------------------------
// LL ans = 0;
// LL upper = sqrt(N * 1.0);
// for(int i = 1; i < upper + 1; i++) if(N % i == 0) ans++;
// ans *= 2;
// N が平方数(A * A == N)であれば, A が重複してカウントされているので, 1減算.
// if(upper * upper == N) ans--;
// --- (ロジック誤り: ここまで) --------------------------------------------
// ex. 44 の 場合,
// 44 = 1 * 44, 2 * 22, 4 * 11, 11 * 4, 22 * 2, 44 * 1 の 6組あるが,
// X の 候補は, 144, 222, 114, 411, 441 の 5つになる点に注意!
// -> small4.txt等 の WA に関する原因 と 推測.
map<string, int> m;
int upper = sqrt(N * 1.0);
for(int i = 1; i < upper + 1; i++){
if(N % i == 0){
string s1 = to_string(i), s2 = to_string(N / i);
string ab = s1 + s2, ba = s2 + s1;
// cout << ab << " " << ba << endl;
m[ab]++, m[ba]++;
}
}
// 3. 終了.
int ans = m.size();
cout << ans << endl;
return 0;
}
@abcde