結果
| 問題 |
No.3156 Count That Day's N
|
| ユーザー |
it_is_a_pity_
|
| 提出日時 | 2025-05-23 19:32:26 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 55 ms / 3,000 ms |
| コード長 | 1,635 bytes |
| コンパイル時間 | 4,236 ms |
| コンパイル使用メモリ | 256,660 KB |
| 実行使用メモリ | 7,848 KB |
| 最終ジャッジ日時 | 2025-05-23 19:32:32 |
| 合計ジャッジ時間 | 5,832 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 32 |
ソースコード
#ifdef LOCAL
#define _GLIBCXX_DEBUG
#endif
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
using namespace std;
using ll = long long;
#define rep(i, n) for (ll i = 0; i < (ll)n; i++)
#define all(v) v.begin(),v.end()
const ll INF = (ll)2e18;
int main(){
cin.tie(0);
ios::sync_with_stdio(false);
ll K, N;
cin >> K >> N;
if(K>N){
cout << 0 << endl;
return 0;
}
vector<ll> xs, ys;
for (ll i = 1; i <= 1000;i++){
if(i*i*i*i*i*i<=N){
xs.push_back(i * i * i * i * i * i);
}
}
for (ll i = 1; i <= 10000;i++){
if(i*i*i*i<=N){
ys.push_back(i * i * i * i);
}
}
//cout << xs.size() << ' ' << ys.size() << endl;
set<ll> y_set;
rep(i,ys.size()){
y_set.insert(ys[i]);
}
ll ans = 0;
set<ll> seen;
rep(i,xs.size()){
rep(j,ys.size()){
ll num = xs[i] + ys[j];
if(num%K==0){
num /= K;
ll big = sqrt(num) + 10;
ll small = 0;
while(big-small>1){
ll m = (big + small) / 2;
if(m*m>num){
big = m;
}
else{
small = m;
}
}
if(small*small==num&&num*K<=N){
if(!seen.count(num)){
ans++;
seen.insert(num);
}
}
}
}
}
cout << ans << endl;
}
//1000000000000000 1000000000000000
it_is_a_pity_