编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#114674 #1145. ddd 和渡渡鸟 Compile Error 0 0 ms 0 K C++ 11 / 945 B Rhodoks 2024-07-22 20:36:26
显示原始代码
#include <bits/stdc++.h>
#define MAXN 1010000
using namespace std;

vector<int> g[MAXN];
int in[MAXN];
int sum[MAXN];

int x, y;

bool check(int mid) {
    for (int i = 0; i <= mid; i++) {
        g[i].clear();
        in[i] = 0;
    }
    for (int i = 0; i <= mid; i++) {
        if (i + a <= mid) {
            g[i].push_back(i + x);
            in[i + x]++;
        }
        if (i + b <= mid) {
            g[i + y].push_back(i);
            in[i]++;
        }
    }
    int cnt = 0;
    queue<int> q;
    for (int i = 0; i <= mid; i++)
        if (in[i] == 0)
            q.push(i);
    while (!q.empty()) {
        int pos = q.front();
        q.pop();
        sum[pos] = cnt++;
        for (auto p : g[pos]) {
            in[p]--;
            if (!in[p])
                q.push(p);
        }
    }
    if (cnt == mid + 1)
        return 1;
    return 0;
}

int main() {
    cin >> x >> y;
    int l = 1, r = x + y + 10;
    while (l != r) {
        int mid = (l + r) / 2;
        if (check(mid))
            l = mid + 1;
        else
            r = mid;
    }
    l--;
    check(l);
    cout << l << endl;
    for (int i = 1; i <= l; i++) printf("%d ", sum[i] - sum[i - 1]);
    return 0;
}

编译信息

/sandbox/1/a.cpp: In function 'bool check(int)':
/sandbox/1/a.cpp:20:9: error: 'a' was not declared in this scope
   20 |   if (i+a<=mid)
      |         ^
/sandbox/1/a.cpp:25:9: error: 'b' was not declared in this scope
   25 |   if (i+b<=mid)
      |         ^