QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#56840#3873. TowersWilson_LeeCompile Error//C++3.0kb2022-10-21 17:35:272022-10-21 17:35:32

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-10-21 17:35:32]
  • Judged
  • [2022-10-21 17:35:27]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;

typedef pair<int,int> pa;
const int MAXN=1e6+5;
struct node
{
    int x,y;
}p[MAXN];
vector<pa>X[MAXN],Y[MAXN];
int numx[MAXN],numy[MAXN],ans[MAXN];
int n,lenx,leny;
void rush1()
{
    for(int i=leny;i>=1;--i)
    {
        if(Y[i].size()<=2)
        {
            for(auto j:Y[i]) ans[j.second]=1;
            continue;
        }
        sort(Y[i].begin(),Y[i].end());
        Y[i].erase(unique(Y[i].begin(),Y[i].end()),Y[i].end());
        int si=Y[i].size();
        ans[Y[i][0].second]=ans[Y[i][si-1].second]=1;
        vector<pa>tmp;
        tmp.emplace_back(Y[i][0]);
        if(si>=2) tmp.emplace_back(Y[i][si-1]);
        for(int j=1;j<si-1;++j)
        {
            ans[Y[i][j].second]=0;
            pa now={i,Y[i][j].second};
            int pos=lower_bound(X[Y[i][j].first].begin(),X[Y[i][j].first].end(),now)-X[Y[i][j].first].begin()-1;
            if(pos>0) Y[X[Y[i][j].first][pos].first].emplace_back({Y[i][j].first,X[Y[i][j].first][pos].second});
            else tmp.emplace_back(Y[i][j]);
        }
        Y[i]=tmp;
    }
}
void rush2(bool flag)
{
    for(int i=1;i<=leny;++i)
    {
        if(Y[i].size()<=2)
        {
            for(auto j:Y[i]) ans[j.second]=1;
            continue;
        }
        sort(Y[i].begin(),Y[i].end());
        Y[i].erase(unique(Y[i].begin(),Y[i].end()),Y[i].end());
        int si=Y[i].size();
        ans[Y[i][0].second]=ans[Y[i][si-1].second]=1;
        vector<pa>tmp;
        if(flag) tmp.emplace_back(Y[i][0]),tmp.emplace_back(Y[i][si-1]);
        for(int j=1;j<si-1;++j)
        {
            ans[Y[i][j].second]=0;
            pa now={i,Y[i][j].second};
            int pos=upper_bound(X[Y[i][j].first].begin(),X[Y[i][j].first].end(),now)-X[Y[i][j].first].begin();
            if(pos<X[Y[i][j].first].size()-1) Y[X[Y[i][j].first][pos].first].emplace_back({Y[i][j].first,X[Y[i][j].first][pos].second});
            else if(flag) tmp.emplace_back(Y[i][j]);
        }
        if(flag) Y[i]=tmp;
    }
}
int main()
{
    //freopen("tower4.in","r",stdin);
    //freopen("tower.out","w",stdout);
    cin>>n;
    for(int i=1;i<=n;++i) scanf("%d %d",&p[i].x,&p[i].y),numx[i]=p[i].x,numy[i]=p[i].y;
    sort(numx+1,numx+n+1),sort(numy+1,numy+n+1);
    lenx=unique(numx+1,numx+n+1)-numx-1,leny=unique(numy+1,numy+n+1)-numy-1;
    for(int i=1;i<=n;++i)
    {
        p[i].x=lower_bound(numx+1,numx+lenx+1,p[i].x)-numx;
        p[i].y=lower_bound(numy+1,numy+leny+1,p[i].y)-numy;
    }
    for(int i=1;i<=n;++i) X[p[i].x].emplace_back({p[i].y,i});
    for(int i=1;i<=lenx;++i)
    {
        sort(X[i].begin(),X[i].end());
        int si=X[i].size();
        Y[X[i][0].first].emplace_back({i,X[i][0].second});
        if(si>=2) Y[X[i][si-1].first].emplace_back({i,X[i][si-1].second});
    }
    rush1(),rush2(1);
    rush1(),rush2(1);
    rush1(),rush2(1);
    rush1(),rush2(0);
    for(int i=1;i<=n;++i) printf("%d",ans[i]);
    return 0;
}

Details

answer.code: In function ‘void rush1()’:
answer.code:34:66: error: no matching function for call to ‘std::vector<std::pair<int, int> >::emplace_back(<brace-enclosed initializer list>)’
   34 |             if(pos>0) Y[X[Y[i][j].first][pos].first].emplace_back({Y[i][j].first,X[Y[i][j].first][pos].second});
      |                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:72,
                 from /usr/include/c++/11/functional:62,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from answer.code:1:
/usr/include/c++/11/bits/vector.tcc:109:7: note: candidate: ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::reference = std::pair<int, int>&]’
  109 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/vector.tcc:109:7: note:   candidate expects 0 arguments, 1 provided
answer.code: In function ‘void rush2(bool)’:
answer.code:60:90: error: no matching function for call to ‘std::vector<std::pair<int, int> >::emplace_back(<brace-enclosed initializer list>)’
   60 |             if(pos<X[Y[i][j].first].size()-1) Y[X[Y[i][j].first][pos].first].emplace_back({Y[i][j].first,X[Y[i][j].first][pos].second});
      |                                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:72,
                 from /usr/include/c++/11/functional:62,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from answer.code:1:
/usr/include/c++/11/bits/vector.tcc:109:7: note: candidate: ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::reference = std::pair<int, int>&]’
  109 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/vector.tcc:109:7: note:   candidate expects 0 arguments, 1 provided
answer.code: In function ‘int main()’:
answer.code:79:49: error: no matching function for call to ‘std::vector<std::pair<int, int> >::emplace_back(<brace-enclosed initializer list>)’
   79 |     for(int i=1;i<=n;++i) X[p[i].x].emplace_back({p[i].y,i});
      |                           ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:72,
                 from /usr/include/c++/11/functional:62,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from answer.code:1:
/usr/include/c++/11/bits/vector.tcc:109:7: note: candidate: ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::reference = std::pair<int, int>&]’
  109 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/vector.tcc:109:7: note:   candidate expects 0 arguments, 1 provided
answer.code:84:38: error: no matching function for call to ‘std::vector<std::pair<int, int> >::emplace_back(<brace-enclosed initializer list>)’
   84 |         Y[X[i][0].first].emplace_back({i,X[i][0].second});
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:72,
                 from /usr/include/c++/11/functional:62,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from answer.code:1:
/usr/include/c++/11/bits/vector.tcc:109:7: note: candidate: ‘std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp = std::pair<int, int>; _Alloc = std::allocator<std::pair<int, int> >; std::vector<_Tp, _Alloc>::reference = std::pair<int, int>&]’
  109 |       vector<_Tp, _Alloc>::
      |       ^~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/vector.tcc:109:7: note:   candidate expects 0 arguments, 1 provided
answer.code:85:51: error: no matching function for call to ‘std::vector<std::pair<int, int> >::emplace_back(<brace-enclosed initializer list>)’
   85 |         if(si>=2) Y[X[i][si-1].first].emplace_back({i,X[i][si-1].second})...