제출 #41001

#제출 시각아이디문제언어결과실행 시간메모리
41001alenam0161고대 책들 (IOI17_books)C++14
50 / 100
232 ms111888 KiB
#include "books.h" #include <vector> #include <algorithm> using namespace std; const int N = 1e6 + 7; int group[N]; int mx[N]; bool used[N]; long long minimum_walk(std::vector<int> p, int s) { long long ans = 0; for (int i = 0; i < p.size(); ++i) { int to = i; if (used[to])continue; while (true) { group[to] = i; mx[i] = max(mx[i], to); ans += abs(p[to] - to); used[to] = true; if (used[p[to]])break; to = p[to]; } } int Mx = 0; for (int i = 0; i < p.size(); ++i) { if (Mx == -1) { ans += 2; Mx = mx[i]; } else { Mx = max(Mx, mx[i]); } if (Mx == i)Mx = -1; } for (int i = p.size() - 1; i > 0; i--) { if (p[i] != i)break; ans -= 2; } return ans; }

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

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