Submission #97836

#TimeUsernameProblemLanguageResultExecution timeMemory
97836KLPPICC (CEOI16_icc)C++14
0 / 100
394 ms632 KiB
#include<bits/stdc++.h> #include "icc.h" using namespace std; typedef long long int lld; set<pair<int,int> >S; int arr1[1000]; int arr2[1000]; int q(vector<int> a, vector<int> b){ for(int i=0;i<a.size();i++)arr1[i]=a[i]; for(int i=0;i<b.size();i++)arr2[i]=b[i]; return query(a.size(),b.size(),arr1,arr2); } vector<vector<int> > CC; pair<int,int> discover_edge(vector<int> a, vector<int> b){ if(a.size()==1 && b.size()==1)return pair<int,int>(a[0],b[0]); if(a.size()<b.size())swap(a,b); vector<int> mid; int M=a.size()/2; for(int i=0;i<M;i++)mid.push_back(a[i]); if(q(mid,b)){ return discover_edge(mid,b); } mid.clear(); for(int i=M;i<a.size();i++)mid.push_back(a[i]); return discover_edge(mid,b); } int test_components(int a, int b){ return q(CC[a],CC[b]); } void merge_components(int a, int b){ if(a<b)swap(a,b); vector<int> v1; for(int i=0;i<CC[a].size();i++)v1.push_back(CC[a][i]); for(int i=0;i<CC[b].size();i++)v1.push_back(CC[b][i]); CC.erase(CC.begin()+a); CC.erase(CC.begin()+b); CC.push_back(v1); } void run(int N){ if(CC.size()==0){ for(int i=1;i<=N;i++){ vector<int> v; v.push_back(i); CC.push_back(v); } } /*for(int i=0;i<CC.size();i++){ for(int j=0;j<CC[i].size();j++)cout<<CC[i][j]<<" "; cout<<endl; }*/ for(int i=0;i<CC.size();i++){ for(int j=i+1;j<CC.size();j++){ if(test_components(i,j)){ pair<int,int> p=discover_edge(CC[i],CC[j]); merge_components(i,j); setRoad(p.first,p.second); return; } } } }

Compilation message (stderr)

icc.cpp: In function 'int q(std::vector<int>, std::vector<int>)':
icc.cpp:9:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<a.size();i++)arr1[i]=a[i];
              ~^~~~~~~~~
icc.cpp:10:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<b.size();i++)arr2[i]=b[i];
              ~^~~~~~~~~
icc.cpp: In function 'std::pair<int, int> discover_edge(std::vector<int>, std::vector<int>)':
icc.cpp:24:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=M;i<a.size();i++)mid.push_back(a[i]);
              ~^~~~~~~~~
icc.cpp: In function 'void merge_components(int, int)':
icc.cpp:33:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<CC[a].size();i++)v1.push_back(CC[a][i]);
              ~^~~~~~~~~~~~~
icc.cpp:34:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<CC[b].size();i++)v1.push_back(CC[b][i]);
              ~^~~~~~~~~~~~~
icc.cpp: In function 'void run(int)':
icc.cpp:51:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<CC.size();i++){
              ~^~~~~~~~~~
icc.cpp:52:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int j=i+1;j<CC.size();j++){
                 ~^~~~~~~~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...