답안 #153686

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
153686 2019-09-15T06:31:41 Z semiauto Hedgehog Daniyar and Algorithms (IZhO19_sortbooks) C++14
컴파일 오류
0 ms 0 KB
solve(i+1+N-1,par[i]-1+N-1,1,N,2*N-1);#include <bits/stdc++.h>
using namespace std;
int n,m,i,j,l,r,ans,N=1024*1024;
int mas[1000001],val[1000001],tree[2048*1024];
pair <int,int> p[1000001][20];
vector <int> v[1000001];
void dfs(int u) {
    int i;
    for (i=1;i<20;i++)
        if (p[p[u][i-1].first][i-1].first)
            p[u][i]={p[p[u][i-1].first][i-1].first,max(p[u][i-1].second,p[p[u][i-1].first][i-1].second)};
    for (i=0;i<(v[u].size());i++)
        dfs(v[u][i]);
}
int solve(int x,int y,int p,int l,int r) {
    if (l>y || x>r)
        return 0;
    if (l>=x && r<=y)
        return tree[p];
    return max(solve(x,y,2*p,l,(l+r)/2),solve(x,y,2*p+1,(l+r)/2+1,r));
}
void build_tree(int p) {
    if (p>=N) {
        if ((p-N+1)<=n)
            tree[p]=mas[p-N+1];
        return;
    }
    build_tree(2*p);
    build_tree(2*p+1);
    tree[p]=max(tree[2*p],tree[2*p+1]);
}
int main() {
    cin>>n>>m;
    for (i=1;i<=n;i++)
        scanf("%d",&(mas[i]));
    build_tree(1);
    for (i=n;i>0;i--) {
        for (;r>0;r--)
            if (mas[val[r]]>=mas[i])
                break;
        p[i][0].first=val[r];
        if (val[r]>(i+1))
            p[i][0].second=mas[i]+solve(i+1+N-1,val[r]-1+N-1,1,N,2*N-1);
        v[val[r]].push_back(i);
        val[++r]=i;
    }
    for (i=0;i<(v[0].size());i++)
        dfs(v[0][i]);
    for (mas[0]=1;mas[0]<=m;mas[0]++) {
        scanf("%d %d %d",&l,&r,&j);
        if (l==r) {
            printf("1\n");
            continue;
        }
        ans=0;
        for (i=19;i>=0;i--)
            if (p[l][i].first && p[l][i].first<=r) {
                ans=max(ans,p[l][i].second);
                l=p[l][i].first;
            }
        if (r>l)
            ans=max(ans,mas[l]+solve(l+1+N-1,r+N-1,1,N,2*N-1));
        if (ans>j)
            printf("0\n");
        else
            printf("1\n");
    }
}

Compilation message

sortbooks.cpp:1:39: error: stray '#' in program
 solve(i+1+N-1,par[i]-1+N-1,1,N,2*N-1);#include <bits/stdc++.h>
                                       ^
sortbooks.cpp:1:6: error: expected constructor, destructor, or type conversion before '(' token
 solve(i+1+N-1,par[i]-1+N-1,1,N,2*N-1);#include <bits/stdc++.h>
      ^
sortbooks.cpp:1:40: error: 'include' does not name a type; did you mean '__has_include'?
 solve(i+1+N-1,par[i]-1+N-1,1,N,2*N-1);#include <bits/stdc++.h>
                                        ^~~~~~~
                                        __has_include
sortbooks.cpp:5:1: error: 'pair' does not name a type
 pair <int,int> p[1000001][20];
 ^~~~
sortbooks.cpp:6:1: error: 'vector' does not name a type
 vector <int> v[1000001];
 ^~~~~~
sortbooks.cpp: In function 'void dfs(int)':
sortbooks.cpp:10:13: error: 'p' was not declared in this scope
         if (p[p[u][i-1].first][i-1].first)
             ^
sortbooks.cpp:11:52: error: 'max' was not declared in this scope
             p[u][i]={p[p[u][i-1].first][i-1].first,max(p[u][i-1].second,p[p[u][i-1].first][i-1].second)};
                                                    ^~~
sortbooks.cpp:11:52: note: suggested alternative: 'mas'
             p[u][i]={p[p[u][i-1].first][i-1].first,max(p[u][i-1].second,p[p[u][i-1].first][i-1].second)};
                                                    ^~~
                                                    mas
sortbooks.cpp:12:17: error: 'v' was not declared in this scope
     for (i=0;i<(v[u].size());i++)
                 ^
sortbooks.cpp: In function 'int solve(int, int, int, int, int)':
sortbooks.cpp:20:12: error: 'max' was not declared in this scope
     return max(solve(x,y,2*p,l,(l+r)/2),solve(x,y,2*p+1,(l+r)/2+1,r));
            ^~~
sortbooks.cpp:20:12: note: suggested alternative: 'mas'
     return max(solve(x,y,2*p,l,(l+r)/2),solve(x,y,2*p+1,(l+r)/2+1,r));
            ^~~
            mas
sortbooks.cpp: In function 'void build_tree(int)':
sortbooks.cpp:30:13: error: 'max' was not declared in this scope
     tree[p]=max(tree[2*p],tree[2*p+1]);
             ^~~
sortbooks.cpp:30:13: note: suggested alternative: 'mas'
     tree[p]=max(tree[2*p],tree[2*p+1]);
             ^~~
             mas
sortbooks.cpp: In function 'int main()':
sortbooks.cpp:33:5: error: 'cin' was not declared in this scope
     cin>>n>>m;
     ^~~
sortbooks.cpp:33:5: note: suggested alternative: 'main'
     cin>>n>>m;
     ^~~
     main
sortbooks.cpp:35:9: error: 'scanf' was not declared in this scope
         scanf("%d",&(mas[i]));
         ^~~~~
sortbooks.cpp:41:9: error: 'p' was not declared in this scope
         p[i][0].first=val[r];
         ^
sortbooks.cpp:44:9: error: 'v' was not declared in this scope
         v[val[r]].push_back(i);
         ^
sortbooks.cpp:47:17: error: 'v' was not declared in this scope
     for (i=0;i<(v[0].size());i++)
                 ^
sortbooks.cpp:50:9: error: 'scanf' was not declared in this scope
         scanf("%d %d %d",&l,&r,&j);
         ^~~~~
sortbooks.cpp:52:13: error: 'printf' was not declared in this scope
             printf("1\n");
             ^~~~~~
sortbooks.cpp:52:13: note: suggested alternative: 'int'
             printf("1\n");
             ^~~~~~
             int
sortbooks.cpp:57:17: error: 'p' was not declared in this scope
             if (p[l][i].first && p[l][i].first<=r) {
                 ^
sortbooks.cpp:58:21: error: 'max' was not declared in this scope
                 ans=max(ans,p[l][i].second);
                     ^~~
sortbooks.cpp:58:21: note: suggested alternative: 'mas'
                 ans=max(ans,p[l][i].second);
                     ^~~
                     mas
sortbooks.cpp:62:17: error: 'max' was not declared in this scope
             ans=max(ans,mas[l]+solve(l+1+N-1,r+N-1,1,N,2*N-1));
                 ^~~
sortbooks.cpp:62:17: note: suggested alternative: 'mas'
             ans=max(ans,mas[l]+solve(l+1+N-1,r+N-1,1,N,2*N-1));
                 ^~~
                 mas
sortbooks.cpp:64:13: error: 'printf' was not declared in this scope
             printf("0\n");
             ^~~~~~
sortbooks.cpp:64:13: note: suggested alternative: 'int'
             printf("0\n");
             ^~~~~~
             int
sortbooks.cpp:66:13: error: 'printf' was not declared in this scope
             printf("1\n");
             ^~~~~~
sortbooks.cpp:66:13: note: suggested alternative: 'int'
             printf("1\n");
             ^~~~~~
             int