# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1157799 | SmuggingSpun | Magic Show (APIO24_show) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#include "Alice.h"
using namespace std;
typedef long long ll;
vector<pair<int, int>>Alice(){
ll X = setN(5000);
vector<pair<int, int>>ans;
for(int i = 2; i <= 5000; i++){
ans.emplace_back(X % (i - 1) + 1, i);
}
return ans;
}
#include<bits/stdc++.h>
#include "Bob.h"
using namespace std;
typedef long long ll;
template<class T>bool maximize(T& a, T b){
if(a < b){
a = b;
return true;
}
return false;
}
ll Bob(vector<pair<int, int>>edge){
for(auto& [u, v] : edge){
swap(u, v);
u--;
v--;
}
sort(edge.begin(), edge.end());
vector<int>prev_mod;
ll start, prod = 1;
for(auto& [mod, remain] : edge){
if(prev_mod.size() == 5){
break;
}
bool flag = true;
for(int& x : prev_mod){
if(__gcd(mod, x) > 1){
flag = false;
break;
}
}
if(flag){
if(prev_mod.empty()){
start = remain;
}
else{
while(start % mod != remain){
start += prod;
}
}
prod *= ll(mod);
prev_mod.emplacce_back(mod);
}
}
while(true){
bool flag = true;
for(auto& [mod, remain] : edge){
if(start % mod != remain){
flag = false;
break;
}
}
if(flag){
break;
}
start += prod;
}
return start;
}