제출 #70452

#제출 시각아이디문제언어결과실행 시간메모리
70452bnahmad15고대 책들 (IOI17_books)C++17
50 / 100
281 ms30296 KiB
#include "books.h" #include <bits/stdc++.h> using namespace std; const int N = 1000001; int n; bool vis[N]; vector<pair<vector<int>,long long> > v; priority_queue <int> points; long long minimum_walk(std::vector<int> p, int s) { n = p.size(); for(int i = 0;i<n;i++) vis[i] = 0; v.clear(); for(int i = 0;i<n;i++){ if(p[i] != i && vis[i] == false){ v.push_back(make_pair(vector<int>(),0)); v.back().first.push_back(i); vis[i] = true; v.back().second += 1LL * abs(p[i] - i); int j = p[i]; while (j != i){ vis[j] = true; v.back().first.push_back(j); v.back().second += 1LL * abs(p[j] - j); j = p[j]; } } } long long res = 0; if(v.size()){ points.push(0); for(int i = 0;i<v.size();i++){ res += 1LL * v[i].second; if(v[i].first[0] > points.top()) res += 2LL * abs(v[i].first[0] - points.top()); for(int j = 0;j<v[i].first.size();j++) points.push(v[i].first[j]); } } return res; }

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

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:33:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 0;i<v.size();i++){
                 ~^~~~~~~~~
books.cpp:37:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for(int j = 0;j<v[i].first.size();j++)
                  ~^~~~~~~~~~~~~~~~~~
#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...