제출 #559689

#제출 시각아이디문제언어결과실행 시간메모리
559689nonsensenonsense1고대 책들 (IOI17_books)C++17
50 / 100
113 ms15840 KiB
#include "books.h" #include <cassert> #include <cstdlib> const int N = 1000000; int n; bool u[N]; long long minimum_walk(std::vector<int> p, int s) { long long ans = 0; n = (int)p.size(); int mx = -1, come = ~(1 << 31); for (int i = 0; i < n; ++i) if (p[i] != i) { come = std::min(come, abs(i - s)); if (!u[i]) { if (i > mx && mx != -1) { if (s > mx && s < i) come = 0; ans += i - mx << 1; } int cur = i; do { ans += abs(cur - p[cur]); mx = std::max(mx, cur); u[cur] = 1; cur = p[cur]; } while (cur != i); } } if (mx == -1) return 0; return ans + come * 2; }

컴파일 시 표준 에러 (stderr) 메시지

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:18:14: warning: suggest parentheses around '-' inside '<<' [-Wparentheses]
   18 |     ans += i - mx << 1;
      |            ~~^~~~
#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...