Submission #579483

#TimeUsernameProblemLanguageResultExecution timeMemory
579483webCarnival (CEOI14_carnival)C++17
100 / 100
19 ms336 KiB
#include <iostream> #include <vector> #include <string> #include <set> #include <math.h> using namespace std; vector<vector<int>> merge(vector<vector<int>> v1, vector<vector<int>> v2) { if(v1.size() == 0) return v2; if(v2.size() == 0) return v1; if(v1.size() < v2.size()) swap(v1,v2); for(int j = 0; j<v2.size(); ++j) { set<int> representativesV1; for(int i = 0; i<v1.size(); ++i) representativesV1.insert(v1[i][0]); int result; if(representativesV1.size() !=0) { string output = to_string(representativesV1.size() +1) +" "; for(auto el : representativesV1) output += to_string(el+1) + " "; output += to_string(v2[j][0]+1); cout<<output<<endl; cin>>result; } else { result =0; } if(result == representativesV1.size()) { for(int i = 0; i<v1.size(); ++i) { cout<<2<<" "<<v1[i][0]+1<<" "<<v2[j][0]+1<<endl; int res; cin>>res; if(res == 1) { for(int k = 0; k<v2[j].size(); ++k) { v1[i].push_back(v2[j][k]); } break; } } } else { v1.push_back(v2[j]); } } return v1; } vector<vector<int>> mergeSort(vector<vector<int>> friends) { if(friends.size() == 1) return friends; if(friends.size() == 0) return vector<vector<int>>(0); int mid = friends.size()/2; vector<vector<int>> sort1 = mergeSort(vector<vector<int>>(friends.begin(), friends.begin() + mid)); vector<vector<int>> sort2 = mergeSort(vector<vector<int>>(friends.begin() + mid, friends.end())); return merge(sort1, sort2); } int main() { int numFriendsKnown = 0; int numFriendsTotal; cin>>numFriendsTotal; vector<vector<int>> fr(numFriendsTotal); for(int i = 0; i<numFriendsTotal; ++i) { fr[i] = {i}; } vector<vector<int>> groups = mergeSort(fr); for(int i = 0; i<groups.size(); ++i) { for(int j =0; j<groups[i].size(); ++j) { fr[groups[i][j]] = {i+1}; } } cout<<0<<" "; for(int i = 0; i<fr.size(); ++i) { cout<<fr[i][0]<<" "; } cout<<endl; return 0; }

Compilation message (stderr)

carnival.cpp: In function 'std::vector<std::vector<int> > merge(std::vector<std::vector<int> >, std::vector<std::vector<int> >)':
carnival.cpp:17:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for(int j = 0; j<v2.size(); ++j)
      |                    ~^~~~~~~~~~
carnival.cpp:21:25: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |         for(int i = 0; i<v1.size(); ++i)
      |                        ~^~~~~~~~~~
carnival.cpp:38:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::set<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |         if(result == representativesV1.size())
      |            ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
carnival.cpp:40:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   40 |             for(int i = 0; i<v1.size(); ++i)
      |                            ~^~~~~~~~~~
carnival.cpp:47:37: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |                     for(int k = 0; k<v2[j].size(); ++k)
      |                                    ~^~~~~~~~~~~~~
carnival.cpp: In function 'int main()':
carnival.cpp:92:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   92 |     for(int i = 0; i<groups.size(); ++i)
      |                    ~^~~~~~~~~~~~~~
carnival.cpp:94:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   94 |         for(int j =0; j<groups[i].size(); ++j)
      |                       ~^~~~~~~~~~~~~~~~~
carnival.cpp:100:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  100 |     for(int i = 0; i<fr.size(); ++i)
      |                    ~^~~~~~~~~~
carnival.cpp:83:9: warning: unused variable 'numFriendsKnown' [-Wunused-variable]
   83 |     int numFriendsKnown = 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...