답안 #1083259

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1083259 2024-09-02T19:41:54 Z Math4Life2020 고대 책들 (IOI17_books) C++17
12 / 100
1 ms 348 KB
#include <bits/stdc++.h>
using namespace std;

using ll = long long; using pii = pair<ll,ll>;
const ll INF = 1e8;

ll minimum_walk(vector<int> p, int s) {
	ll N = p.size();
	ll flux[N];
	for (ll i=0;i<N;i++) {
		flux[i]=0;
	}
	for (ll i=0;i<N;i++) {
		if (p[i]>i) {
			flux[i]++;
			flux[p[i]]--;
		}
	}
	ll pf[N+1];
	pf[0]=0;
	for (ll i=0;i<N;i++) {
		pf[i+1]=pf[i]+flux[i];
		//cout << "x="<<(i+1)<<", pf[x]="<<pf[i+1]<<"\n";
	}
	ll maxl[N+1]; ll minl[N+1];
	for (ll i=0;i<=N;i++) {
		maxl[i]=-INF;
		minl[i]=INF;
	}
	for (ll i=1;i<=N;i++) {
		maxl[pf[i]]=max(maxl[pf[i]],i);
		minl[pf[i]]=min(minl[pf[i]],i-1);
	}
	for (ll i=N;i>=1;i--) {
		maxl[i-1]=max(maxl[i],maxl[i-1]);
		minl[i-1]=min(minl[i],minl[i-1]);
	}
	//ll xc = 0;
	ll ans = 0;
	for (ll i=1;i<=N;i++) {
		//cout << "i="<<i<<", maxl="<<maxl[i]<<", minl="<<minl[i]<<"\n"; 
		if (minl[i]!=INF) {
			/*ans += abs(xc-minl[i]);
			xc = minl[i];
			ans += abs(xc-maxl[i]);
			xc = maxl[i];*/
			ans += 2*(maxl[i]-minl[i]);
			if (i==1) {
				if (s<minl[i]) {
					ans += 2*(minl[i]-s);
				} else if (s>maxl[i]) {
					ans += 2*(maxl[i]-s);
				}
			}
		}
	}
	//ans += abs(xc);
	return ans;
}

/*int main() {
	vector<int> p1 = {0,2,3,1};
	cout << minimum_walk(p1,0);
}*/
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 1 ms 344 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 1 ms 344 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Incorrect 0 ms 348 KB 3rd lines differ - on the 1st token, expected: '338572', found: '339340'
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 1 ms 344 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Incorrect 0 ms 348 KB 3rd lines differ - on the 1st token, expected: '338572', found: '339340'
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB 3rd lines differ - on the 1st token, expected: '3304', found: '5898'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 0 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Correct 0 ms 348 KB Output is correct
10 Correct 0 ms 348 KB Output is correct
11 Correct 0 ms 348 KB Output is correct
12 Correct 0 ms 348 KB Output is correct
13 Correct 0 ms 348 KB Output is correct
14 Correct 0 ms 348 KB Output is correct
15 Correct 0 ms 348 KB Output is correct
16 Correct 0 ms 348 KB Output is correct
17 Correct 1 ms 344 KB Output is correct
18 Correct 0 ms 348 KB Output is correct
19 Incorrect 0 ms 348 KB 3rd lines differ - on the 1st token, expected: '338572', found: '339340'
20 Halted 0 ms 0 KB -