迷惑问题求助!调试输出AC,直接运行全WA
  • 板块灌水区
  • 楼主洛璟
  • 当前回复9
  • 已保存回复9
  • 发布时间2021/3/5 08:44
  • 上次更新2023/11/5 02:27:23
查看原帖
迷惑问题求助!调试输出AC,直接运行全WA
198719
洛璟楼主2021/3/5 08:44

RT,我也不知道为什么……到了直接运行的时候就输出了一堆极大的数字,但是调试的时候输出就没有问题qwq

#include<bits/stdc++.h>
using namespace std;
int n, m, q, t;
double u, v;
int a[1919810];
queue<pair<int, int> > q1, q2, q3;
inline int read()
{
    int x = 0, f = 1;
    char c = getchar();
    while (c < '0' || c>'9')
    {
        if (c == '-') f = -1;
        c = getchar();
    }
    while (c <= '9' && c >= '0')
    {
        x = (x << 3) + (x << 1) + (c ^ '0');
        c = getchar();
    }
    return x * f;
}
int aa(int i)
{
    return q1.front().first + q * (i - 1);
}
int bb(int i)
{
    return q2.front().first + q * (i - (q2.front().second) - 1);
}
int cc(int i)
{
    return q3.front().first + q * (i - (q3.front().second) - 1);
}
int aaa(int i)
{
    if (q1.size() != 0)
        return q1.front().first + q * (i - (q1.front().second) - 1);
}
bool cmp(int x, int y)
{
    return x > y;
}
int main()
{
    n = read();
    m = read();
    q = read();
    scanf("%lf%lf", &u, &v);
    t = read();
    for (int i = 1;i <= n;++i)
    {
        a[i] = read();
    }
    sort(a + 1, a + n + 1, cmp);
    for (int i = 1;i <= n;++i)
    {
        q1.push(make_pair(a[i], -i));
    }
    double p = u / v;
    for (int i = 1;i <= m;++i)
    {
        int qwq;
        if (q1.size() != 0 && aa(i) >= bb(i) && aa(i) >= cc(i))
        {
            qwq = q1.front().first + q * (i - 1);
            q1.pop();
        }
        else if (q2.size() != 0 && bb(i) >= cc(i) && bb(i) >= aa(i))
        {
            qwq = bb(i);
            q2.pop();
        }
        else
        {
            qwq = cc(i);
            q3.pop();
        }
        int tmp1 = floor(qwq * p);
        int tmp2 = qwq - tmp1;
        int m1 = tmp1 > tmp2 ? tmp1 : tmp2;
        int m2 = tmp1 > tmp2 ? tmp2 : tmp1;
        q2.push(make_pair(m1, i));
        q3.push(make_pair(m2, i));
        if (i % t == 0) printf("%d ", qwq);
    }
    printf("\n");
    for (int i = 1;i <= n + m;++i)
    {
        int qwq;
        if (q1.size() != 0 && aaa(m) >= bb(m) && aaa(m) >= cc(m))
        {
            qwq = aaa(m);
            q1.pop();
        }
        else if (q2.size() != 0 && bb(m) >= cc(m) && bb(m) >= aaa(m))
        {
            qwq = bb(m);
            q2.pop();
        }
        else
        {
            qwq = cc(m);
            q3.pop();
        }
        if (i % t == 0) printf("%d ", qwq + 1);
    }
    return 0;
}
2021/3/5 08:44
加载中...