Submission #71804

#TimeUsernameProblemLanguageResultExecution timeMemory
71804nirshalmonAncient Books (IOI17_books)C++14
50 / 100
237 ms12876 KiB
#include "books.h"
#include<bits/stdc++.h>

using namespace std;

long long minimum_walk(std::vector<int> p, int s) {
	long long base = -2;
	int mx = -1;
	int f = 0, l = p.size() - 1;
	for (; f < p.size(); ++f) {
		if (p[f] != f) break;
	}
	for (; l >= 0; --l) {
		if (p[l] != l) break;
	}
	if (l == -1) return 0;
	for (int i = f; i <= l; ++i) {
		base += abs(p[i] - i);
		mx = max(p[i], mx);
		if (mx <= i) 
			base += 2;
	}
	if (s < f) base += 2 * (f - s);
	if (s > l) base += 2 * (s - l);
	return base;
}

Compilation message (stderr)

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:10:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (; f < p.size(); ++f) {
         ~~^~~~~~~~~~
#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...