Information
- ID
- 1588
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 45
- Accepted
- 26
- Uploaded By
#include<iostream>
using namespace std;
const int N = 1e6 + 5;
bool flag[N];
int main(void)
{
int j, k;
cin >> j >> k;
int d = j * k / __gcd(j, k);
for (int i = 0; i < d; i++)//关于i和取的边界不用纠结
{
for (int t = 0; t < d; t++)
{
if (i * j + k * t > d) break;
flag[i * j + k * t] = 1;
}
}
for (int i = d; i > 0; i--)//从后向前遍历找到第一个false即所求
{
if (!flag[i])
{
cout << i << endl;
break;
}
}
return 0;
}
By signing up a 追梦算法网 universal account, you can submit code and join discussions in all online judging services provided by us.