Submission #69262

#TimeUsernameProblemLanguageResultExecution timeMemory
69262BruteforcemanAncient Books (IOI17_books)C++11
22 / 100
2067 ms15296 KiB
#include "books.h" #include "bits/stdc++.h" using namespace std; long long minimum_walk(std::vector<int> p, int s) { bool good = true; for(int i = 0; i < p.size(); i++) { if(p[i] != i) { good = false; } } if(good) return 0; int l = 0; int r = p.size() - 1; long long ans = 0; while(l < p.size() && p[l] == l) { if(s == l) { ans += 2; ++s; } ++l; } while(r >= 0 && p[r] == r) { if(s == r) { ans += 2; --s; } --r; } for(int i = l; i < r; i++) { int go_left = 0; int go_right = 0; for(int j = l; j <= i; j++) { if(p[j] > i) { ++go_left; } } for(int j = i + 1; j <= r; j++) { if(p[j] < i+1) { ++go_right; } } assert(go_left == go_right); ans += max(2, go_left + go_right); } return ans; }

Compilation message (stderr)

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