답안 #430375

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
430375 2021-06-16T13:15:08 Z AmineWeslati 고대 책들 (IOI17_books) C++14
0 / 100
2000 ms 316 KB
#include "books.h"
#include <bits/stdc++.h>
using namespace std; 

typedef long long ll;
typedef vector<int>vi; 
#define pb push_back
#define sz(x) (int)x.size()
#define all(x) begin(x),end(x)


typedef pair<int,int>pi;
#define fi first
#define se second
typedef vector<pi>vpi;
#define eb emplace_back

#define FOR(i,a,b) for(int i=a; i<b; i++)
#define ROF(i,a,b) for(int i=b-1; i>=a; i--)

//--------------------------------

const int MX=1e6+5;
int N; 
vi a;

ll minimum_walk(vi p, int s){
	N=sz(p);
	a.resize(N);
	FOR(i,0,N) a[i]=i;

	ll ans=0,cur=s;
	while(1){
		vpi vec;

		FOR(i,0,N) if(p[a[i]]>i) vec.eb(i,a[i]);
		if(!sz(vec)) break;

		int rgt=p[vec.back().fi];
		vec.eb(rgt,a[rgt]);


		/*for(auto x: vec) cout << x.fi << ' ' << x.se << endl;
		break;*/

		int emp=vec[0].fi;

		vpi vecc;
		vecc.eb(emp,a[emp]);

		FOR(i,emp+1,N){
			if(p[a[i]]<i) vecc.eb(i,a[i]);
		}

		/*for(auto x: vecc) cout << x.fi << ' ' << x.se << endl;
		break;*/
		

		ROF(i,0,sz(vec)-1){
			a[vec[i+1].fi]=vec[i].se;
		}
		FOR(i,1,sz(vecc)){
			a[vecc[i-1].fi]=vecc[i].se;
		}

		/*for(auto x: a) cout << x << ' ';
		cout << endl;*/

		ans+=abs(cur-rgt);
		ans+=abs(rgt-emp);

		cur=emp;
	}
	ans+=abs(cur-s);
	
	
	return ans; 
}

/*

4 0
0 2 3 1

*/
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 1 ms 316 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 204 KB Output is correct
12 Correct 1 ms 292 KB Output is correct
13 Incorrect 1 ms 204 KB 3rd lines differ - on the 1st token, expected: '8', found: '12'
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 1 ms 316 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 204 KB Output is correct
12 Correct 1 ms 292 KB Output is correct
13 Incorrect 1 ms 204 KB 3rd lines differ - on the 1st token, expected: '8', found: '12'
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 1 ms 316 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 204 KB Output is correct
12 Correct 1 ms 292 KB Output is correct
13 Incorrect 1 ms 204 KB 3rd lines differ - on the 1st token, expected: '8', found: '12'
14 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2082 ms 296 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
5 Correct 1 ms 204 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 1 ms 316 KB Output is correct
8 Correct 1 ms 204 KB Output is correct
9 Correct 1 ms 204 KB Output is correct
10 Correct 1 ms 204 KB Output is correct
11 Correct 1 ms 204 KB Output is correct
12 Correct 1 ms 292 KB Output is correct
13 Incorrect 1 ms 204 KB 3rd lines differ - on the 1st token, expected: '8', found: '12'
14 Halted 0 ms 0 KB -