답안 #474083

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
474083 2021-09-16T20:14:05 Z AdamGS 고대 책들 (IOI17_books) C++14
0 / 100
13 ms 8356 KB
#include "books.h"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
#define rep(a, b) for(ll a = 0; a < (b); ++a)
#define st first
#define nd second
#define pb push_back
#define all(a) a.begin(), a.end()
const int LIM=1e6+7;
int F[LIM], mi[LIM], ma[LIM];
int fnd(int x) {
	if(F[x]==x) return x;
	return F[x]=fnd(F[x]);
}
void uni(int a, int b) {
	mi[fnd(a)]=min(mi[fnd(a)], mi[fnd(b)]);
	ma[fnd(a)]=max(ma[fnd(a)], ma[fnd(b)]);
	F[fnd(b)]=fnd(a);
}
ll minimum_walk(vector<int>p, int s) {
	int n=p.size();
	rep(i, n) F[i]=mi[i]=ma[i]=i;
	vector<ll>V;
	for(auto i : p) V.pb(i);
	ll ans=0;
	rep(i, V.size()) {
		ans+=abs(i-V[i]);
		uni(i, V[i]);
	}
	int l=s, r=s, aktmi=mi[fnd(s)], aktma=ma[fnd(s)];
	while(0<l || r<n-1) {
		if(aktmi<l) {
			--l;
			aktmi=min(aktmi, mi[fnd(l)]);
		} else if(r<aktma) {
			++r;
			aktma=max(aktma, ma[fnd(r)]);
		} else {
			++ans;
			++r;
			aktma=max(aktma, ma[fnd(r)]);
		}
	}
	return ans;
}

Compilation message

books.cpp: In function 'll minimum_walk(std::vector<int>, int)':
books.cpp:6:35: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    6 | #define rep(a, b) for(ll a = 0; a < (b); ++a)
      |                                   ^
books.cpp:28:2: note: in expansion of macro 'rep'
   28 |  rep(i, V.size()) {
      |  ^~~
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB 3rd lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB 3rd lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB 3rd lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 13 ms 8356 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 204 KB 3rd lines differ - on the 1st token, expected: '6', found: '5'
2 Halted 0 ms 0 KB -