Submission #390985

# Submission time Handle Problem Language Result Execution time Memory
390985 2021-04-17T13:26:36 Z alishahali1382 Ancient Books (IOI17_books) C++14
Compilation error
0 ms 0 KB
#include "books.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef vector<int> vi;
#define debug(x) {cerr<<#x<<"="<<x<<"\n";}
#define debug2(x, y) {cerr<<#x<<", "<<#y<<" = "<<x<<", "<<y<<"\n";}
#define pb push_back
#define all(x) x.begin(), x.end()

const int inf=1000000100;
const int MAXN=1000010;

ll ans; // :)
int n, m, k, s;
int P[MAXN], ps[MAXN];

ll minimum_walk(vector<int> _p, int s){
	n=_p.size();
	for (int i=0; i<n; i++){
		P[i]=_p[i];
		ans+=abs(i-P[i]);
		ps[min(i, P[i])]++;
		ps[max(i, P[i])]--;
	}
	if (!ans) return 0;
	while (P[n-1]==n-1) n--;
	int L=0;
	while (P[L]==L) L++;
	for (int i=1; i<n; i++) ps[i]+=ps[i-1];
	for (int i=L; i+1<n; i++) if (!ps[i]) ans+=2;
	if (s<L) ans+=2*(L-s);
	else if (n<s) ans+=2*(s-n);
	else{
		ll res=inf;
		for (int i=L; i<n; i++) if (P[i]!=i) res=min(res, abs(i-s));
		ans+=res;
	}

	return ans;
}

Compilation message

books.cpp: In function 'll minimum_walk(std::vector<int>, int)':
books.cpp:38:61: error: no matching function for call to 'min(ll&, int)'
   38 |   for (int i=L; i<n; i++) if (P[i]!=i) res=min(res, abs(i-s));
      |                                                             ^
In file included from /usr/include/c++/9/vector:60,
                 from books.h:1,
                 from books.cpp:1:
/usr/include/c++/9/bits/stl_algobase.h:198:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  198 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/9/bits/stl_algobase.h:198:5: note:   template argument deduction/substitution failed:
books.cpp:38:61: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   38 |   for (int i=L; i<n; i++) if (P[i]!=i) res=min(res, abs(i-s));
      |                                                             ^
In file included from /usr/include/c++/9/vector:60,
                 from books.h:1,
                 from books.cpp:1:
/usr/include/c++/9/bits/stl_algobase.h:246:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  246 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/9/bits/stl_algobase.h:246:5: note:   template argument deduction/substitution failed:
books.cpp:38:61: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   38 |   for (int i=L; i<n; i++) if (P[i]!=i) res=min(res, abs(i-s));
      |                                                             ^
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from books.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3444:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3444 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/9/bits/stl_algo.h:3444:5: note:   template argument deduction/substitution failed:
books.cpp:38:61: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   38 |   for (int i=L; i<n; i++) if (P[i]!=i) res=min(res, abs(i-s));
      |                                                             ^
In file included from /usr/include/c++/9/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:65,
                 from books.cpp:2:
/usr/include/c++/9/bits/stl_algo.h:3450:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3450 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/9/bits/stl_algo.h:3450:5: note:   template argument deduction/substitution failed:
books.cpp:38:61: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   38 |   for (int i=L; i<n; i++) if (P[i]!=i) res=min(res, abs(i-s));
      |                                                             ^