U508179 验证 UBC002G

题目描述

[测评链接](https://www.luogu.com.cn/record/190664490)。~~你们应该看得到代码吧……~~ 好像看不到。 如果存在极差大于 $3$ 的答案,这份代码就会输出东西。原始代码是 DerrickLo 写的,我改造了一下。 时限调到 `1ms` 了防卡评测。 ```cpp #include #define lcm(a, b) ((a) * (b) / __gcd(a, b)) #define int long long using namespace std; int n; vector v2, v3; int a1(int x) { return cbrt(x); } int a2(int x) { return sqrt(x); } int a3(int x) { return cbrt(x * x); } inline array check3(int a, int b, int c, int p) { // x+y+z=n,ax+by+cz=p int x = p - a * n; if (x < 0) return {-1, -1, -1}; if (b == a + 1) { int cc = x / (c - a); int bb = x % (c - a); if (cc == 0) return {-1, -1, -1}; if (bb == 0) { if (cc >s; string s2; s2="data"+s+".out"; s="data"+s+".in"; freopen(s.c_str(),"r",stdin); freopen(s2.c_str(),"w",stdout); //*/ v2.clear(); v3.clear(); for (int i = a2(2 * n) - 2; i 0) v2.emplace_back(i); for (int i = a2(1 * n) - 2; i 0) v2.emplace_back(i); for (int i = a2(6 * n) - 2; i 0) v3.emplace_back(i); for (int i = a2(3 * n) - 2; i 0) v3.emplace_back(i); for (int i = a2(2 * n) - 2; i 0) v3.emplace_back(i); for (int i = a2(1 * n) - 2; i 0) v3.emplace_back(i); for (int v : v2) { ///* auto now = check3(v, v + 1, v + 2, lcm(lcm(v, v + 1), v + 2)); if (now[0] != -1) { ///* return 0; //*/ } //*/ } for (int v : v3) { auto now = check3(v, v + 1, v + 3, lcm(lcm(v, v + 1), v + 3)); if (now[0] != -1) { return 0; } now = check3(v, v + 2, v + 3, lcm(lcm(v, v + 2), v + 3)); if (now[0] != -1) { return 0; } auto noww = check4(v, v + 1, v + 2, v + 3, lcm(lcm(lcm(v, v + 1), v + 2), v + 3)); if (noww[0] != -1) { return 0; } } return 1; } signed main() { for (int i = 3; i

输入格式

输出格式