Submission #176022

# Submission time Handle Problem Language Result Execution time Memory
176022 2020-01-07T15:42:46 Z Peacher29 Boxes with souvenirs (IOI15_boxes) C++14
20 / 100
2 ms 380 KB
#include "boxes.h"
#include<bits/stdc++.h>

using namespace std;

class pont{
public:
	int elotte;
	int utana;
	int hely;
	
	long long vissza;
	
	long long elolrol;
	long long hatulrol;
};

vector<pont> p;

long long delivery(int n, int k, int l, int in[]) {
	p.resize(n+1);
	for(int i=0;i<=n;i++){
		p[i].elotte = (i-1+n+1)%(n+1);
		p[i].utana = (i+1)%(n+1);
	}
	p[0].hely=0;
	for(int i=1;i<=n;i++){
		p[i].hely=in[i-1];
	}
	long long eddig=0; 
	for(int i=1;i<=n;i++){
		p[i].vissza= min (
			p[i].hely, l-p[i].hely
		);
		//cout << i << ':' << p[i].vissza << '\t';
		/*if((i-1)%k==0){
			eddig+=p[i].hely+p[i].vissza;
			p[i].elolrol=eddig;
		} else {
			eddig+=p[i].hely-p[p[i].elotte].hely;
			p[i].elolrol=eddig+p[i].vissza;
		}
		cout << i << ' ' << p[i].elolrol << '\n';*/
		if(i%k==0){
			eddig+=p[i].hely-p[p[i].elotte].hely+p[i].vissza;
			p[i].elolrol=eddig;
		} else if(i%k==1){
			eddig+=p[i].hely;
			p[i].elolrol=eddig+p[i].vissza;
		} else {
			eddig+=p[i].hely-p[p[i].elotte].hely;
			p[i].elolrol=eddig+p[i].vissza;
		}
		//cout << i << ' ' << (i)%k << ' ' << eddig << ' ' << p[i].elolrol << '\n';
	}
	if(k==1){
		long long ossz=0;
		for(int i=1;i<=n;i++){
			ossz+=p[i].vissza;
		}
		return ossz*2;
	}
	eddig=0;
	p[0].hely=l;
	for(int i=n;i>0;i--){
		if((n-i+1+k)%k==0){
			eddig+=p[p[i].utana].hely-p[i].hely+p[i].vissza;
			p[i].hatulrol=eddig;
		} else if((n-i+1+k)%k==1){
			eddig+=l-p[i].hely;
			p[i].hatulrol=eddig+p[i].vissza;
		} else {
			eddig+=p[p[i].utana].hely-p[i].hely;
			p[i].hatulrol=eddig+p[i].vissza;
		}
		//cout << i << ' ' << (n-i+1+k)%k << ' ' << eddig << ' ' << p[i].hatulrol << '\n';
	}
	long long mn= LLONG_MAX;
	for(int i=0;i<=n;i++){
		mn = min(p[i].elolrol+p[p[i].utana].hatulrol,mn);
	}
return mn;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 248 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 380 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 256 KB Output is correct
2 Correct 2 ms 256 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 252 KB Output is correct
6 Incorrect 2 ms 376 KB Output isn't correct
7 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 248 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 376 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 380 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 256 KB Output is correct
16 Correct 2 ms 256 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Correct 2 ms 376 KB Output is correct
19 Correct 2 ms 252 KB Output is correct
20 Incorrect 2 ms 376 KB Output isn't correct
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 248 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 376 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 380 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 256 KB Output is correct
16 Correct 2 ms 256 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Correct 2 ms 376 KB Output is correct
19 Correct 2 ms 252 KB Output is correct
20 Incorrect 2 ms 376 KB Output isn't correct
21 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 2 ms 376 KB Output is correct
4 Correct 2 ms 376 KB Output is correct
5 Correct 2 ms 248 KB Output is correct
6 Correct 2 ms 376 KB Output is correct
7 Correct 2 ms 376 KB Output is correct
8 Correct 2 ms 376 KB Output is correct
9 Correct 2 ms 376 KB Output is correct
10 Correct 2 ms 376 KB Output is correct
11 Correct 2 ms 376 KB Output is correct
12 Correct 2 ms 380 KB Output is correct
13 Correct 2 ms 376 KB Output is correct
14 Correct 2 ms 376 KB Output is correct
15 Correct 2 ms 256 KB Output is correct
16 Correct 2 ms 256 KB Output is correct
17 Correct 2 ms 376 KB Output is correct
18 Correct 2 ms 376 KB Output is correct
19 Correct 2 ms 252 KB Output is correct
20 Incorrect 2 ms 376 KB Output isn't correct
21 Halted 0 ms 0 KB -