编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#27409 #1151. 把你挂在地灵殿门口当装饰品! Compile Error 0 0 ms 0 K C++ 17 (Clang) / 1.2 K Komeiji Koishi 2020-06-30 10:57:31
显示原始代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int t1, n, x, i, j, mn, mx, la, flag, hd[500010], a[500010], id[500010];
int main() {
    t1 = 1;
    while (t1--) {
        scanf("%d", &n);
        for (i = 1; i <= n; i++) {
            scanf("%d", &a[i]);
            id[a[i]] = i;
        }
        hd[1] = 1;
        for (i = 2; i <= n; i++) {
            if (id[i] > id[i - 1])
                hd[i] = hd[i - 1];
            else
                hd[i] = i;
        }
        mn = n + 1;
        mx = 0;
        la = 0;
        flag = 0;
        x = hd[n];
        if (hd[n] <= 1) {
            mn = min(mn, 0);
            mx = 0;
        }
        x = hd[n] - 1;
        // printf("%d %d %d\n",i,hd[n],la);
        if (x > la) {
            if (hd[x] <= 1 && id[1] > id[la]) {
                mn = min(mn, 0);
                mx = 0;
            }
        } else {
            mn = min(mn, 0);
            mx = 0;
        }
        for (i = 1; i <= n; i++) {
            if (a[i] < a[i - 1])
                break;
            if (i == n) {
                mn = min(mn, i);
                mx = i;
                continue;
            }
            for (j = a[i - 1] + 1; j < a[i]; j++) {
                if (id[j] < id[la]) {
                    flag = 1;
                    break;
                }
                la = j;
            }
            if (flag)
                break;
            if (a[i] == n) {
                mn = min(mn, i);
                mx = i;
                continue;
            }
            x = hd[n];
            if (hd[n] <= a[i] + 1) {
                mn = min(mn, i);
                mx = i;
                continue;
            }
            x = hd[n] - 1;
            // printf("%d %d %d\n",i,hd[n],la);
            if (x > la) {
                if (hd[x] <= a[i] + 1 && id[a[i] + 1] > id[la]) {
                    mn = min(mn, i);
                    mx = i;
                    continue;
                }
            } else {
                mn = min(mn, i);
                mx = i;
                continue;
            }
        }
        if (mn > mx)
            puts("-1 -1");
        else
            printf("%d %d\n", mn, mx);
    }
}
preview

编译信息

/sandbox/1/a.cpp:68:1: error: unknown type name 'preview'
preview
^
/sandbox/1/a.cpp:68:8: error: expected unqualified-id
preview
       ^
2 errors generated.