社区讨论
45 分求调
UVA756Biorhythms参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mlkfqh4l
- 此快照首次捕获于
- 2026/02/13 13:16 6 天前
- 此快照最后确认于
- 2026/02/13 13:22 6 天前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t, p, e, r, d, x, y, ans, mul = 1, table[] = {0, 23, 28, 33}, a[4];
int exgcd(int a, int b, int &x, int &y)
{
if (b == 0)
{
x = 1;
y = 0;
return a;
}
int d = exgcd(b, a % b, x, y);
int t = x;
x = y;
y = t - (a / b) * y;
return d;
}
signed main()
{
while (cin >> p >> e >> r >> d)
{
++ t;
ans = 0;
if (p == -1 && e == -1 && r == -1 && d == -1)
{
break;
}
a[1] = p;
a[2] = e;
a[3] = r;
mul = 23 * 28 * 33;
for (int i = 1; i <= 3; ++ i)
{
x = 0;
y = 0;
int k = mul / table[i];
exgcd(k, table[i], x, y);
ans += (x % mul * k % mul * a[i] % mul) % mul;
ans %= mul;
}
while (ans <= d)
{
ans += mul;
}
cout << "Case " << t << ": the next triple peak occurs in " << (ans + mul) % mul - d << " days." << endl;
}
return 0;
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...