新?算法or 求 hack
查看原帖
新?算法or 求 hack
674147
vanueber楼主2024/9/4 20:42
#include<bits/stdc++.h>
using namespace std;
#define int __int128
mt19937 rnd;

inline int read()
{
	int w = 0, f = 1;
	char ch = getchar();
	while (ch < '0' || ch > '9')
	{
		if (ch == '-') f = -1;
		ch = getchar();
	}
	while (ch >= '0' && ch <= '9')
	{
		w = (w << 1) + (w << 3) + (ch ^ 48);
		ch = getchar();
	}
	return w * f;
}

inline void write(int x)
{
	if (x < 0)
	{
		putchar('-');
		x = -x;
	}
	if (x > 9) write(x / 10);
	putchar(x % 10 + '0');
}
struct ggg
{
	int a, b;
} num[100005];
int gcd(int a,int b)
{
	if(b==0) return a;
	return gcd(b,a%b);
}
int gg(int a, int b)
{
	return a / gcd(a, b) * b;
}
bool cmp(ggg a, ggg b)
{
	return a.a > b.a;
}
signed main()
{
#ifndef ONLINE_JUDGE
	freopen("in.txt", "r", stdin);
#endif
	int n;
	n = read();
	for (int i = 1; i <= n; i++)
	{
		num[i].a = read();
		num[i].b = read();
		num[i].b %= num[i].a;
	}
//	sort(num + 1, num + n + 1, cmp);
	int sum = num[1].b;
	int lcm = num[1].a;
	if (lcm == 0) lcm = sum;
	clock_t st = clock();
	int ans = 1e18;

	for (int i = 2; i <= n; i++)
	{
		while (sum % num[i].a != num[i].b)
		{
			sum += lcm;
		}
		lcm = gg(lcm, num[i].a);
	}
	ans = min(ans, sum);

	write(ans);
	return 0;
}

机房大佬 doushen 发明的,求hack

2024/9/4 20:42
加载中...