제출 #641449

#제출 시각아이디문제언어결과실행 시간메모리
641449ggoh고대 책들 (IOI17_books)C++14
0 / 100
1 ms212 KiB
#include "books.h" #include<bits/stdc++.h> using namespace std; #define sz(v) ((int)(v).size()) typedef long long lint; int b,n,sz,cnt; int v[1000002],rev[1000002]; vector<int>go; lint ans=0; void dfs(int p,int q) { if(b==-1) { ans+=p; return ; } int r=p; if(q!=b) { r=rev[b]; ans+=abs(r-p); if(q!=-1)rev[q]=r; } ans+=abs(b-r); int tmp=b; q=go[b]; go[b]=b;rev[b]=b; while(b-1>=0 && go[b-1]==b-1)b--; b--; dfs(tmp,q); } lint minimum_walk(vector<int> p, int s) { n=sz(p); go=p; for(int i=0;i<n;i++)rev[go[i]]=i; b=n; while(b-1>=0 && go[b-1]==b-1)b--; b--; if(b==-1)return 0; for(int i=0;i<n;i++) { if(go[i]!=i) { ans+=i; int t=go[i]; go[i]=-1; dfs(i,t); break; } } return ans; }
#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...