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
输入格式
无
输出格式
无