swap.cpp: In function 'std::vector<std::bitset<18> >& solve(int, int)':
swap.cpp:66:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k=0, i=0, j=0; i<p.size() || j<q.size(); k++)
~^~~~~~~~~
swap.cpp:66:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k=0, i=0, j=0; i<p.size() || j<q.size(); k++)
~^~~~~~~~~
swap.cpp:68:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int t=0; t<(1<<k) && i<p.size(); t++, i++) ret.push_back(p[i]);
~^~~~~~~~~
swap.cpp:69:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int t=0; t<(1<<k) && j<q.size(); t++, j++) ret.push_back(q[j]);
~^~~~~~~~~
swap.cpp:77:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k=0, i=0, j=0; i<p.size() || j<q.size(); k++)
~^~~~~~~~~
swap.cpp:77:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k=0, i=0, j=0; i<p.size() || j<q.size(); k++)
~^~~~~~~~~
swap.cpp:79:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int t=0; t<(1<<k) && i<p.size(); t++, i++) ret.push_back(p[i]);
~^~~~~~~~~
swap.cpp:80:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int t=0; t<(1<<k) && j<q.size(); t++, j++) ret.push_back(q[j]);
~^~~~~~~~~
swap.cpp:90:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k=0, i=0, j=0; i<p1.size() || j<q1.size(); k++)
~^~~~~~~~~~
swap.cpp:90:42: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k=0, i=0, j=0; i<p1.size() || j<q1.size(); k++)
~^~~~~~~~~~
swap.cpp:92:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int t=0; t<(1<<k) && i<p1.size(); t++, i++)
~^~~~~~~~~~
swap.cpp:98:20: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
if(p1[i]==p2[i]) ret.push_back(p1[i]), flag=0;
^
swap.cpp:30:6: note: candidate 1: bool operator==(const std::bitset<18>&, const std::bitset<18>&)
bool operator == (const bitset<18> &p, const bitset<18> &q) { return btoi(p)==btoi(q); }
^~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:66:0,
from swap.cpp:1:
/usr/include/c++/7/bitset:1298:7: note: candidate 2: bool std::bitset<_Nb>::operator==(const std::bitset<_Nb>&) const [with long unsigned int _Nb = 18]
operator==(const bitset<_Nb>& __rhs) const _GLIBCXX_NOEXCEPT
^~~~~~~~
swap.cpp:103:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int t=0; t<(1<<k) && j<q1.size(); t++, j++)
~^~~~~~~~~~
swap.cpp:109:20: warning: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
if(q1[j]==q2[j]) ret.push_back(q1[j]), flag=0;
^
swap.cpp:30:6: note: candidate 1: bool operator==(const std::bitset<18>&, const std::bitset<18>&)
bool operator == (const bitset<18> &p, const bitset<18> &q) { return btoi(p)==btoi(q); }
^~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:66:0,
from swap.cpp:1:
/usr/include/c++/7/bitset:1298:7: note: candidate 2: bool std::bitset<_Nb>::operator==(const std::bitset<_Nb>&) const [with long unsigned int _Nb = 18]
operator==(const bitset<_Nb>& __rhs) const _GLIBCXX_NOEXCEPT
^~~~~~~~
swap.cpp:117:1: warning: control reaches end of non-void function [-Wreturn-type]
}
^
swap.cpp: In function 'int main()':
swap.cpp:121:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &N);
~~~~~^~~~~~~~~~
swap.cpp:122:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
for(int i=1; i<=N; i++) scanf("%d", &A[i]);
~~~~~^~~~~~~~~~~~~