結果
| 問題 |
No.1200 お菓子配り-3
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2021-05-23 16:45:36 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 731 ms / 4,000 ms |
| コード長 | 1,531 bytes |
| コンパイル時間 | 2,083 ms |
| コンパイル使用メモリ | 195,668 KB |
| 最終ジャッジ日時 | 2025-01-21 17:46:20 |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 31 |
ソースコード
#include<bits/stdc++.h>
typedef int64_t i64;
typedef long double f128;
using namespace std;
template<typename T>
void scan(T& n)
{
cin>>n;
return;
}
void scan()
{
return;
}
template<typename T,class... Args>
void scan(T& n,Args&... args)
{
scan(n);
scan(args...);
return;
}
template<typename T>
void scan_array(T start,T end)
{
T now=start;
for(;now!=end;++now)
{
scan(*now);
}
return;
}
template<typename T>
void print(T n)
{
cout<<n;
return;
}
template<typename T>
void println(T n)
{
print(n);
print('\n');
return;
}
template<typename T,class... Args>
void println(T n,Args... args)
{
print(n);
print(' ');
println(args...);
return;
}
template<typename T>
void print_array(T start,T end)
{
T now=start;
print(*now);
++now;
for(;now!=end;++now)
{
print(' ');
print(*now);
}
print('\n');
return;
}
vector<int> div_enum(int n)
{
vector<int> res;
for(int i=1;i*i<=n;++i)
{
if(n%i==0)
{
res.push_back(i);
if(i*i!=n)
{
res.push_back(n/i);
}
}
}
return res;
}
void solve()
{
int X,Y;
scan(X,Y);
if(X==Y)
{
println(X-2+X%2+div_enum(X).size()-1);
return;
}
if(X>Y)
{
swap(X,Y);
}
vector<int> vec=div_enum(Y-X);
int ans=0;
for(size_t i=0;i<vec.size();++i)
{
int A=vec[i]+1,n=(Y-X)/vec[i];
if((X-n)%(A+1)==0&&X>n)
{
ans+=1;
}
}
println(ans);
return;
}
int main()
{
int S;
scan(S);
for(int i=0;i<S;++i)
{
solve();
}
return 0;
}