Submission #1291974

#TimeUsernameProblemLanguageResultExecution timeMemory
1291974Ice_manChameleon's Love (JOI20_chameleon)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>

#define maxn 1005



std::vector <int> v[maxn], bruh[maxn];
int c[maxn];


void dfs(int node)
{
    for(int nb : v[node])
    {
        if(c[nb] == -1)
        {
            if(c[node] == 0)
                c[nb] = 1;
            else
                c[nb] = 0;

            dfs(nb);
        }
    }
}



void Solve(int n)
{
    for(int node = 2; node <= 2 * n; node++)
    {
        for(int i = 1; i < node; i++)
            c[i] = -1;

        for(int i = 1; i < node; i++)
            if(c[i] == -1)
            {
                c[i] = 0;
                dfs(i);
            }


        std::vector <int> cc;
        for(int i = 1; i < node; i++)
            if(c[i] == 0)
                cc.PB(i);

        if(cc.size() > 0)
        {
            cc.PB(node);

            while(Query(cc) != cc.size())
            {
                int l = 0, r = cc.size() - 2;


                while(l < r)
                {
                    int mid = (l + r) / 2;

                    std::vector <int> pom;
                    for(int i = 0; i <= mid; i++)
                        pom.PB(cc[i]);
                    pom.PB(node);

                    if(Query(pom) != pom.size())
                        r = mid;
                    else
                        l = mid + 1;
                }

                v[node].PB(cc[r]);
                v[cc[r]].PB(node);

                cc.erase(cc.begin() + r);
            }
        }

        cc.clear();

        for(int i = 1; i < node; i++)
            if(c[i] == 1)
                cc.PB(i);

        if(cc.size() > 0)
        {
            cc.PB(node);

            while(Query(cc) != cc.size())
            {
                int l = 0, r = cc.size() - 2;

                while(l < r)
                {
                    int mid = (l + r) / 2;

                    std::vector <int> pom;

                    for(int i = 0; i <= mid; i++)
                        pom.PB(cc[i]);
                    pom.PB(node);

                    if(Query(pom) != pom.size())
                        r = mid;
                    else
                        l = mid + 1;
                }

                v[node].PB(cc[r]);
                v[cc[r]].PB(node);

                cc.erase(cc.begin() + r);
            }
        }
    }


    std::vector <int> gf(2 * n + 5);
    for(int node = 1; node <= 2 * n; node++)
    {
        if(v[node].size() == 1)
        {
            gf[node] = v[node][0];

            continue;
        }


        std::vector <int> pom = {node, v[node][0], v[node][1]};
        if(Query(pom) == 1)
        {
            bruh[node].PB(v[node][2]);
            bruh[v[node][2]].PB(node);

            continue;
        }

        pom = {node, v[node][0], v[node][2]};
        if(Query(pom) == 1)
        {
            bruh[node].PB(v[node][1]);
            bruh[v[node][1]].PB(node);

            continue;
        }

        pom = {node, v[node][1], v[node][2]};
        if(Query(pom) == 1)
        {
            bruh[node].PB(v[node][0]);
            bruh[v[node][0]].PB(node);

            continue;
        }
    }


    for(int node = 1; node <= 2 * n; node++)
    {
        if(gf[node] == 0)
        {
            std::map <int, int> opt;
            for(int nb : bruh[node])
                opt[nb] = 1;

            for(nb : v[node])
                if(opt.find(nb) == opt.end())
                {
                    gf[node] = nb;
                    break;
                }
        }
    }


    for(int i = 1; i <= 2 * n; i++)
        if(i < gf[i])
            Answer(i , gf[i]);
}

Compilation message (stderr)

chameleon.cpp: In function 'void Solve(int)':
chameleon.cpp:47:20: error: 'class std::vector<int>' has no member named 'PB'
   47 |                 cc.PB(i);
      |                    ^~
chameleon.cpp:51:16: error: 'class std::vector<int>' has no member named 'PB'
   51 |             cc.PB(node);
      |                ^~
chameleon.cpp:53:19: error: 'Query' was not declared in this scope
   53 |             while(Query(cc) != cc.size())
      |                   ^~~~~
chameleon.cpp:64:29: error: 'class std::vector<int>' has no member named 'PB'
   64 |                         pom.PB(cc[i]);
      |                             ^~
chameleon.cpp:65:25: error: 'class std::vector<int>' has no member named 'PB'
   65 |                     pom.PB(node);
      |                         ^~
chameleon.cpp:73:25: error: 'class std::vector<int>' has no member named 'PB'
   73 |                 v[node].PB(cc[r]);
      |                         ^~
chameleon.cpp:74:26: error: 'class std::vector<int>' has no member named 'PB'
   74 |                 v[cc[r]].PB(node);
      |                          ^~
chameleon.cpp:84:20: error: 'class std::vector<int>' has no member named 'PB'
   84 |                 cc.PB(i);
      |                    ^~
chameleon.cpp:88:16: error: 'class std::vector<int>' has no member named 'PB'
   88 |             cc.PB(node);
      |                ^~
chameleon.cpp:90:19: error: 'Query' was not declared in this scope
   90 |             while(Query(cc) != cc.size())
      |                   ^~~~~
chameleon.cpp:101:29: error: 'class std::vector<int>' has no member named 'PB'
  101 |                         pom.PB(cc[i]);
      |                             ^~
chameleon.cpp:102:25: error: 'class std::vector<int>' has no member named 'PB'
  102 |                     pom.PB(node);
      |                         ^~
chameleon.cpp:110:25: error: 'class std::vector<int>' has no member named 'PB'
  110 |                 v[node].PB(cc[r]);
      |                         ^~
chameleon.cpp:111:26: error: 'class std::vector<int>' has no member named 'PB'
  111 |                 v[cc[r]].PB(node);
      |                          ^~
chameleon.cpp:131:12: error: 'Query' was not declared in this scope
  131 |         if(Query(pom) == 1)
      |            ^~~~~
chameleon.cpp:133:24: error: 'class std::vector<int>' has no member named 'PB'
  133 |             bruh[node].PB(v[node][2]);
      |                        ^~
chameleon.cpp:134:30: error: 'class std::vector<int>' has no member named 'PB'
  134 |             bruh[v[node][2]].PB(node);
      |                              ^~
chameleon.cpp:140:12: error: 'Query' was not declared in this scope
  140 |         if(Query(pom) == 1)
      |            ^~~~~
chameleon.cpp:142:24: error: 'class std::vector<int>' has no member named 'PB'
  142 |             bruh[node].PB(v[node][1]);
      |                        ^~
chameleon.cpp:143:30: error: 'class std::vector<int>' has no member named 'PB'
  143 |             bruh[v[node][1]].PB(node);
      |                              ^~
chameleon.cpp:149:12: error: 'Query' was not declared in this scope
  149 |         if(Query(pom) == 1)
      |            ^~~~~
chameleon.cpp:151:24: error: 'class std::vector<int>' has no member named 'PB'
  151 |             bruh[node].PB(v[node][0]);
      |                        ^~
chameleon.cpp:152:30: error: 'class std::vector<int>' has no member named 'PB'
  152 |             bruh[v[node][0]].PB(node);
      |                              ^~
chameleon.cpp:167:20: error: found ':' in nested-name-specifier, expected '::'
  167 |             for(nb : v[node])
      |                    ^
      |                    ::
chameleon.cpp:167:17: error: 'nb' has not been declared
  167 |             for(nb : v[node])
      |                 ^~
chameleon.cpp:173:9: error: expected primary-expression before '}' token
  173 |         }
      |         ^
chameleon.cpp:172:18: error: expected ';' before '}' token
  172 |                 }
      |                  ^
      |                  ;
  173 |         }
      |         ~         
chameleon.cpp:173:9: error: expected primary-expression before '}' token
  173 |         }
      |         ^
chameleon.cpp:172:18: error: expected ')' before '}' token
  172 |                 }
      |                  ^
      |                  )
  173 |         }
      |         ~         
chameleon.cpp:167:16: note: to match this '('
  167 |             for(nb : v[node])
      |                ^
chameleon.cpp:173:9: error: expected primary-expression before '}' token
  173 |         }
      |         ^
chameleon.cpp:179:13: error: 'Answer' was not declared in this scope
  179 |             Answer(i , gf[i]);
      |             ^~~~~~