답안 #310654

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
310654 2020-10-07T14:37:56 Z MrDomino Political Development (BOI17_politicaldevelopment) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>

using namespace std;

const int N=50000+7;
int n;
int k;
int sol;
vector<int> g[N];
set<pair<int,int>> s;

void del(int x)
{
        for (auto &i : g[x])
        {
                vector<int> gnew_i;
                for (auto &y : g[i])
                {
                        if (y!=x)
                                gnew_i.push_back(y);
                }
                s.erase({(int) g[i].size(),i});
                s.insert({(int) g[i].size()-1,i});
                g[i]=gnew_i;
        }
        g[x].clear();
}

bool on[N];
int sum[N];
int cur;

void bkt(int node)
{
        cur++;
        for (auto &it : g[node])
                sum[it]++;
        on[node]=1;
        if (cur>sol)
                sol=cur;
        int possible=0;
        for (auto &x : g[node])
        {
                if ((cur==1||node>x)on[x]==0&&sum[x]==cur)
                {
                        possible++;
                }
        }
        if (cur+possible<=sol)
        {
                on[node]=0;
                cur--;
                for (auto &it : g[node])
                        sum[it]--;
                return;
        }
        for (auto &x : g[node])
        {
                if ((cur==1||node>x)on[x]==0&&sum[x]==cur)
                {
                        bkt(x);
                }
        }
        on[node]=0;
        cur--;
        for (auto &it : g[node])
                sum[it]--;
}

int main()
{
        ios::sync_with_stdio(0);
        cin.tie(0);

        cin>>n>>k;
        for (int i=0;i<n;i++)
        {
                int l;
                cin>>l;
                for (int j=1;j<=l;j++)
                {
                        int x;
                        cin>>x;
                        g[i].push_back(x);
                }
                sort(g[i].begin(),g[i].end());
                s.insert({(int)g[i].size(),i});
        }
        while (!s.empty())
        {
                auto it=*s.begin();
                s.erase(it);
                int node=it.second;
                bkt(node);
                del(node);
        }
        cout<<sol<<"\n";
}

Compilation message

politicaldevelopment.cpp: In function 'void bkt(int)':
politicaldevelopment.cpp:44:37: error: expected ')' before 'on'
   44 |                 if ((cur==1||node>x)on[x]==0&&sum[x]==cur)
      |                    ~                ^~
      |                                     )
politicaldevelopment.cpp:59:37: error: expected ')' before 'on'
   59 |                 if ((cur==1||node>x)on[x]==0&&sum[x]==cur)
      |                    ~                ^~
      |                                     )