Submission #70451

#TimeUsernameProblemLanguageResultExecution timeMemory
70451bnahmad15Ancient Books (IOI17_books)C++17
12 / 100
3 ms740 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; vector<int> points; long long minimum_walk(std::vector<int> p, int s) { n = p.size(); // do{ for(int i = 0;i<n;i++) vis[i] = 0; v.clear(); points.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()){ res = 2 * v[0].first[0]; for(int i = 0;i<v.size();i++){ res += 1LL * v[i].second; sort(v[i].first.begin(),v[i].first.end()); } for(int i = 1;i<v.size();i++){ if(v[i].first[0] <= v[i-1].first.back()) continue; res += 2LL * abs(v[i].first[0] - v[i-1].first.back()); } } /* for(int i = 0;i<4;i++) cout<<p[i]<<" "; cout<<res<<endl;*/ // }while(next_permutation(p.begin(),p.end())); return res; }

Compilation message (stderr)

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