제출 #399734

#제출 시각아이디문제언어결과실행 시간메모리
399734LucaDantas고대 책들 (IOI17_books)C++17
0 / 100
1 ms284 KiB
#include "books.h" struct Par { int l, r; }; int abs(int x) { return x < 0 ? -x : x; } std::vector<Par> segmentos; long long minimum_walk(std::vector<int> p, int s) { int n = (int)p.size(); long long ans = 0; bool ok = 1; for(int i = 0, ini = 0, fim = 0; i < n; i++) { if(p[i] == i) { ++ini; continue; } fim = std::max(fim, p[i]); ans += abs(p[i] - i); if(fim == i) { if(ok && ini >= s) segmentos.push_back({s, s}), ok = 0; segmentos.push_back({ini, fim}), ini = i+1; if(ini <= s && fim >= s) ok = 0; } } for(int i = 0; i < ((int)segmentos.size()) - 1; i++) ans += 2*(segmentos[i+1].l - segmentos[i].r); return ans; }
#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...