Submission #212265

#TimeUsernameProblemLanguageResultExecution timeMemory
212265shahadbalghonaimChameleon's Love (JOI20_chameleon)C++14
0 / 100
5 ms512 KiB
#include <bits/stdc++.h> #include "chameleon.h" //https://cms.ioi-jp.org/tasks/chameleon/descriptionusing namespace std; using namespace std; map<int,vector<int>>theval; int binarysearch(vector<int>haha){ int start=0,end=haha.size()-1; while(start!=end-1){ int middle=(start+end)/2; vector<int>empty; for(int i=middle;i<(int)haha.size();i++){ empty.push_back(haha[i]); } if(Query(empty)==(int)empty.size()){ end=middle; } else{ start=middle; } } return end; } void sh(int i,vector<int>&hehe){ if(Query(hehe)!=(int)hehe.size()){ int pos=binarysearch(hehe); theval[i].push_back(hehe[pos]); hehe.pop_back(); } } void Solve(int N){ int n=N*2; vector<bool>solved(n+1,0); vector<int>one; vector<int>two; vector<int>three; vector<int>four; for(int i=1;i<=n;i++){ bool nah=0; one.push_back(i); sh(i,one); if(one[one.size()-1]==i){nah=1;} two.push_back(i); sh(i,two); if(nah&&two[two.size()-1]==i){two.pop_back();} else if(two[two.size()-1]==i){nah=true;} three.push_back(i); sh(i,three); if(nah&&three[three.size()-1]==i){three.pop_back();} else if(three[three.size()-1]==i){nah=true;} four.push_back(i); sh(i,four); if(nah&&four[four.size()-1]==i){four.pop_back();} else if(four[four.size()-1]==i){nah=true;} } //the N*3 where we find the graph map<int,vector<int>>graph; int haha=0; for(int i=1;i<=n;i++){ if(solved[i]==1)continue; if(theval[i].size()==1){Answer(i,theval[i][0]);solved[i]=1;solved[theval[i][0]]=1;continue;} if(theval[i].size()==2){continue;} if(Query({i,theval[i][0],theval[i][1]})==1){graph[i].push_back(theval[i][2]);graph[theval[i][2]].push_back(i);} else if(Query({i,theval[i][0],theval[i][2]})==1){graph[i].push_back(theval[i][1]);graph[theval[i][1]].push_back(i);} else if(Query({i,theval[i][2],theval[i][1]})==1){graph[i].push_back(theval[i][0]);graph[theval[i][0]].push_back(i);} } for(int i=1;i<=n;i++){ if(solved[i]==1||theval[i].size()==2){continue;} int a=graph[i][0],b=graph[i][1]; for(int j=0;j<3;j++){ if(theval[i][j]!=a&&theval[i][j]!=b&&solved[theval[i][j]]==0){Answer(i,theval[i][j]);solved[i]=1;solved[theval[i][j]]=1;break;} } } }

Compilation message (stderr)

chameleon.cpp: In function 'void Solve(int)':
chameleon.cpp:63:9: warning: unused variable 'haha' [-Wunused-variable]
     int haha=0;
         ^~~~
#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...