Submission #566799

#TimeUsernameProblemLanguageResultExecution timeMemory
566799Deepessoncmp (balkan11_cmp)C++17
46 / 100
4858 ms104940 KiB
#include <bits/stdc++.h> #include "cmp.h" void bit_set(int addr); int bit_get(int addr); void remember(int n) { std::vector<int> vec; while(n){ vec.push_back(n&1); n/=2; } while(vec.size()<12) vec.push_back(0); std::reverse(vec.begin(),vec.end()); int base=1; for(int i=0;i!=vec.size();++i){ base*=2; base+=vec[i]; bit_set(base+1); } } int compare(int b) { std::vector<int> vec; while(b){ vec.push_back(b&1); b/=2; } while(vec.size()<12) vec.push_back(0); std::reverse(vec.begin(),vec.end()); int l=0,r=12; while(l<r){ int m = (l+r+1)/2; int base=1; for(int i=0;i<m;++i){ base*=2; base+=vec[i]; } int x = bit_get(base+1); if(x){ l=m; }else r=m-1; } ///Sao iguais if(l==12){ return 0; } ///Eh maior if(vec[l]){ return 1; } ///Eh menor return -1; }

Compilation message (stderr)

cmp.cpp: In function 'void remember(int)':
cmp.cpp:17:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for(int i=0;i!=vec.size();++i){
      |                 ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...