Submission #1055639

#TimeUsernameProblemLanguageResultExecution timeMemory
1055639LeaRouseSplit the Attractions (IOI19_split)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#include "split.h"
#define fastio ios_base::sync_with_stdio(0); cin.tie(0);
#define ll long long
#define ff first
#define ss second
#define endl '\n'
using namespace std;
const int MAX=1e5+5;
const int MOD=1e8+7;
int R[MAX];
int A[MAX];
int B[MAX];
int C[MAX];
int D[MAX];
map<string,int>m;
vector<int>v[MAX];
bool vis[MAX];
int cont=0;
bool viss[MAX];
void dfs(int u){
    A[cont]=u;
    cont++;
    vis[u]=true;
    for(auto it:v[u]){
        if(vis[it]) continue;
        D[it]=D[u]+1;
        dfs(it);
        C[u]+=C[it];
    }
    C[u]++;
}
int cont=1;
vector<int>res(MAX);
void dfs1(int u){
    viss[u]=1;
    res[u]=cont;
    for(auto it:v[u]){
        if(viss[it])    continue;
        dfs1(it);
    }

}

vector<int> find_split(int N, int a, int b, int c, vector<int> p, vector<int> q) {
    int m=p.size();
    if(m==N-1){
        dfs(0);
        for(int i=0;i<m;i++){
            if(D[p[i].ff]<D[p[i].ss])   swap(p[i].ff,p[i].ss);
            if(C[p[i].ff]>=a and n-C[p[i].ff]>=b){
                viss[p[i].ss]=1;
                dfs1(p[i].ff);
                viss[p[i].ss]=0;
                cont++;
                dfs1(p[i].ss);
                break;
            }
            if(C[p[i].ff]>=b and n-C[p[i].ff]>=a){
                viss[p[i].ff]=1;
                dfs1(p[i].ss);
                viss[p[i].ff]=0;
                cont++;
                dfs1(p[i].ff);
                break;
            }
        }
        int awa=0;
        for(int i=0;i<N;i++){
            if(res[i]==0 and awa<c){
                res[i]=3;
                awa++;
            }
        }
        return res;
    }
    
    for(int i=0;i<m;i++){
        v[p[i]].push_back(q[i]);
        v[q[i]].push_back(p[i]);
        B[p[i]]++;
        B[q[i]]++;
    }
 
    bool awa=false;
    for(int i=0;i<N;i++){
        if(B[i]==1){
            dfs(i);
            awa=true;
            break;
        }
    }
    if(!awa) dfs(0);
 
    vector<int>ans(N);
    for(int i=0;i<a;i++){
        ans[A[i]]=1;
    }
    for(int i=a;i<a+b;i++){
        ans[A[i]]=2;
    }
    for(int i=a+b;i<a+b+c;i++){
        ans[A[i]]=3;
    }
 
    return ans;


}

Compilation message (stderr)

split.cpp:33:5: error: redefinition of 'int cont'
   33 | int cont=1;
      |     ^~~~
split.cpp:19:5: note: 'int cont' previously defined here
   19 | int cont=0;
      |     ^~~~
split.cpp: In function 'std::vector<int> find_split(int, int, int, int, std::vector<int>, std::vector<int>)':
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:50:23: note: in expansion of macro 'ff'
   50 |             if(D[p[i].ff]<D[p[i].ss])   swap(p[i].ff,p[i].ss);
      |                       ^~
split.cpp:6:12: error: request for member 'second' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    6 | #define ss second
      |            ^~~~~~
split.cpp:50:34: note: in expansion of macro 'ss'
   50 |             if(D[p[i].ff]<D[p[i].ss])   swap(p[i].ff,p[i].ss);
      |                                  ^~
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:50:51: note: in expansion of macro 'ff'
   50 |             if(D[p[i].ff]<D[p[i].ss])   swap(p[i].ff,p[i].ss);
      |                                                   ^~
split.cpp:6:12: error: request for member 'second' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    6 | #define ss second
      |            ^~~~~~
split.cpp:50:59: note: in expansion of macro 'ss'
   50 |             if(D[p[i].ff]<D[p[i].ss])   swap(p[i].ff,p[i].ss);
      |                                                           ^~
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:51:23: note: in expansion of macro 'ff'
   51 |             if(C[p[i].ff]>=a and n-C[p[i].ff]>=b){
      |                       ^~
split.cpp:51:34: error: 'n' was not declared in this scope
   51 |             if(C[p[i].ff]>=a and n-C[p[i].ff]>=b){
      |                                  ^
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:51:43: note: in expansion of macro 'ff'
   51 |             if(C[p[i].ff]>=a and n-C[p[i].ff]>=b){
      |                                           ^~
split.cpp:6:12: error: request for member 'second' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    6 | #define ss second
      |            ^~~~~~
split.cpp:52:27: note: in expansion of macro 'ss'
   52 |                 viss[p[i].ss]=1;
      |                           ^~
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:53:27: note: in expansion of macro 'ff'
   53 |                 dfs1(p[i].ff);
      |                           ^~
split.cpp:6:12: error: request for member 'second' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    6 | #define ss second
      |            ^~~~~~
split.cpp:54:27: note: in expansion of macro 'ss'
   54 |                 viss[p[i].ss]=0;
      |                           ^~
split.cpp:6:12: error: request for member 'second' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    6 | #define ss second
      |            ^~~~~~
split.cpp:56:27: note: in expansion of macro 'ss'
   56 |                 dfs1(p[i].ss);
      |                           ^~
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:59:23: note: in expansion of macro 'ff'
   59 |             if(C[p[i].ff]>=b and n-C[p[i].ff]>=a){
      |                       ^~
split.cpp:59:34: error: 'n' was not declared in this scope
   59 |             if(C[p[i].ff]>=b and n-C[p[i].ff]>=a){
      |                                  ^
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:59:43: note: in expansion of macro 'ff'
   59 |             if(C[p[i].ff]>=b and n-C[p[i].ff]>=a){
      |                                           ^~
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:60:27: note: in expansion of macro 'ff'
   60 |                 viss[p[i].ff]=1;
      |                           ^~
split.cpp:6:12: error: request for member 'second' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    6 | #define ss second
      |            ^~~~~~
split.cpp:61:27: note: in expansion of macro 'ss'
   61 |                 dfs1(p[i].ss);
      |                           ^~
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:62:27: note: in expansion of macro 'ff'
   62 |                 viss[p[i].ff]=0;
      |                           ^~
split.cpp:5:12: error: request for member 'first' in 'p.std::vector<int>::operator[](((std::vector<int>::size_type)i))', which is of non-class type '__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type' {aka 'int'}
    5 | #define ff first
      |            ^~~~~
split.cpp:64:27: note: in expansion of macro 'ff'
   64 |                 dfs1(p[i].ff);
      |                           ^~