Submission #1036198

#TimeUsernameProblemLanguageResultExecution timeMemory
1036198vjudge1카멜레온의 사랑 (JOI20_chameleon)C++17
64 / 100
31 ms556 KiB
#include "chameleon.h"
#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(),x.end()
vector<int>edges[1010];
vector<int> likehell[4];
int lik[1010];
void proc(int i){
    if(edges[i].size()<2)return;
    vector<int>v=edges[i];
    v.push_back(i);
    for(auto k:edges[i]){
        v.erase(find(all(v),k));
        if(Query(v)<2)
            lik[i]=k;
        v.push_back(k);
    }
}
int AE(int a,int b){
    edges[a].push_back(b);
    edges[b].push_back(a);
    return b;
}
int dnc(int i,vector<int> v){
    v.pop_back();
    if(v.size()==1) return AE(i,v[0]);
    vector<int>a,b;
    for(int i=0;i<v.size();i++)
        (i%2?a:b).push_back(v[i]);
    a.push_back(i);
    b.push_back(i);
    return dnc(i,Query(a)<a.size()?a:b);
}
void Solve(int N) {
    for(int i=1;i<=2*N;i++) {
        int apos=0;
        for(int j=0;j<4;j++){
            if(likehell[j].size()){
                vector<int>v=likehell[j];
                v.push_back(i);
                while(Query(v)<v.size())
                    v.erase(find(all(v),dnc(i,v)));
                if(v.size()>likehell[j].size())
                    apos=j;
            }else apos=j;
        }
        likehell[apos].push_back(i);
    }
    for(int i=1;i<=2*N;i++)
        proc(i);
    for(int i=1;i<=2*N;i++)
        if(lik[i])edges[i].erase(find(all(edges[i]),lik[i])),
            edges[lik[i]].erase(find(all(edges[lik[i]]),i));
    for(int i=1;i<=2*N;i++)
        if(edges[i][0]>i)
            Answer(edges[i][0],i);
}

Compilation message (stderr)

chameleon.cpp: In function 'int dnc(int, std::vector<int>)':
chameleon.cpp:28:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |     for(int i=0;i<v.size();i++)
      |                 ~^~~~~~~~~
chameleon.cpp:32:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     return dnc(i,Query(a)<a.size()?a:b);
      |                  ~~~~~~~~^~~~~~~~~
chameleon.cpp: In function 'void Solve(int)':
chameleon.cpp:41:31: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   41 |                 while(Query(v)<v.size())
      |                       ~~~~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...