제출 #288762

#제출 시각아이디문제언어결과실행 시간메모리
288762peti1234고대 책들 (IOI17_books)C++17
50 / 100
213 ms18924 KiB
#include <bits/stdc++.h> using namespace std; const int c=1000002; bool v[c]; long long sum; vector<pair<int, int> > sz; int n, t[c], mini, maxi; void dfs(int a) { v[a]=true; mini=min(mini, a), maxi=max(maxi, a); if (!v[t[a]]) dfs(t[a]); } long long minimum_walk(vector<int> p, int s) { n=p.size(); for (int i=0; i<n; i++) t[i]=p[i], sum+=(abs(p[i]-i)); for (int i=0; i<n; i++) if (!v[i] && t[i]!=i) mini=n, maxi=0, dfs(i), sz.push_back({mini, maxi}); maxi=0; for (int i=0; i<sz.size(); i++) { sum+=2*max(0, sz[i].first-maxi); maxi=max(maxi, sz[i].second); } return sum; }

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

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:19:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |     for (int i=0; i<sz.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...