Submission #1197162

#TimeUsernameProblemLanguageResultExecution timeMemory
1197162b00legenMagic Show (APIO24_show)C++17
100 / 100
9 ms528 KiB
#include <bits/stdc++.h>
#include "Alice.h"
using namespace std;
using ll = long long;

vector<pair<int, int> >Alice() {
	ll x = setN(5000);
	vector<pair<int, int> >res;
	for (int i = 1; i < 5000; i++) {
		if (x % i)
		res.push_back({x % i, i});
		else
		res.push_back({i, 5000});
	}
	return res;
}
#include <bits/stdc++.h>
using namespace std;
using ll = long long;

ll gcd(ll a, ll b) {
	while (a > 0 && b > 0) {
		if (a > b)
		a %= b;
		else
		b %= a;
	}
	return a + b;
}

ll Bob(vector<pair<int, int> >v) {
	set<pair<int, int> >st;
	for (size_t i = 0; i < v.size(); i++) {
		ll nm = v[i].second % 5000, md = v[i].first;
		if (nm)
		swap(nm, md);
		for (int j = 2; j <= md; j++) {
			if (md % j == 0) {
				st.insert({nm % j, j});
				while (md % j == 0)
				md /= j;
			}
		}
	}
	set<pair<int, int> >::iterator it = st.begin();
	ll res = (*it).first, m = (*it).second;
	it++;
	for (; it != st.end(); it++) {
		ll nm = (*it).first, md = (*it).second;
		for (int j = 0; j < 5000; j++) {
			if (res % md == nm)
			break;
			res += m;
		}
		if (1e18 / md < m)
		break;
		m *= md;
	}
	return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...