제출 #105230

#제출 시각아이디문제언어결과실행 시간메모리
105230puyu_liao고대 책들 (IOI17_books)C++14
0 / 100
3 ms384 KiB
#include<bits/stdc++.h>
#include<stdio.h>
using namespace std;
#define IOS {cin.tie(0);ios_base::sync_with_stdio(false);}

#include"books.h"
typedef long long lll;
#define N 100005
bitset<N> vis;

lll minimum_walk(vector<int> p,int s){
	vis.reset();
	int ll = s,rr = s,gl,gr;
	lll ans = 0;
	for(int i=0;i<p.size();i++) if(!vis[i]){
		gl = p.size()+1, gr = -1;
		vis[i] = 1;
		int t = i;
		while(!vis[p[t]]){ 
			gl = min(gl,t); gr = max(gr,t);
			vis[p[t]] = 1;
			ans += abs(p[t] - t);
			t = p[t];
			gl = min(gl,t); gr = max(gr,t);
		}
		if(gl <= gr && gr < s) ll = min(ll,gr);
		if(gl <= gr && gl > s) rr = max(rr,gl);
		ans += abs(p[t] - t);
	}
	return ans + rr+rr-ll-ll;
}

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

books.cpp: In function 'lll minimum_walk(std::vector<int>, int)':
books.cpp:15:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<p.size();i++) if(!vis[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...