Submission #73447

#TimeUsernameProblemLanguageResultExecution timeMemory
73447SmsSAncient Books (IOI17_books)C++14
22 / 100
2057 ms12340 KiB
#include<bits/stdc++.h> using namespace std; #define for2(a,b,c) for(int a = b; a < c; a++) #include "books.h" #define ll long long const int maxn = 1000100; int par[maxn]; int getpar(int x){ if(par[x] < 0) return x; return par[x] = getpar(par[x]); } long long minimum_walk(std::vector<int> p, int s) { // if(s != 0) return 0; ll res = 0; int n = p.size(); fill(par,par+n,-1); for2(i,0,n) res += abs(i-p[i]); int cnt = 0; for2(i,0,n){ int l = min(i,p[i]); int r = max(i,p[i]); for2(j,l,r+1){ int x = getpar(i); int y = getpar(j); if(x != y){ if(par[x] < par[y]) swap(x,y); par[y] += par[x]; par[x] = y; } } } for2(i,0,n) if(getpar(i) == i) res += 2; res -= 2; for(int i = n-1; i > s; i--){ if(par[getpar(i)] != -1) break; res -= 2; } for2(i,0,n){ if(par[getpar(i)] != -1 || i == s) break; res -= 2; } return res; }

Compilation message (stderr)

books.cpp: In function 'long long int minimum_walk(std::vector<int>, int)':
books.cpp:21:6: warning: unused variable 'cnt' [-Wunused-variable]
  int cnt = 0;
      ^~~
#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...