books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:21:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < p.size(); i ++) boss[i] = i, sz[i] = 1;
~~^~~~~~~~~~
books.cpp:22:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i < p.size(); i ++) sum += abs(i - p[i]), merge(i, p[i]);
~~^~~~~~~~~~
books.cpp:24:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i = 0; i + 1 < p.size(); i ++) {
~~~~~~^~~~~~~~~~
books.cpp:30:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(ptr != s and ptr + 1 < p.size() and p[ptr] == ptr) ptr ++;
~~~~~~~~^~~~~~~~~~
In file included from /usr/include/c++/7/cassert:44:0,
from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:33,
from books.cpp:1:
books.cpp:40:27: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
assert(cnt + sz[Find(s)] == p.size());
~~~~~~~~~~~~~~~~~~^~~~~~~~~~~