Submission #1049051

# Submission time Handle Problem Language Result Execution time Memory
1049051 2024-08-08T12:38:36 Z parsadox2 Dungeons Game (IOI21_dungeons) C++17
13 / 100
268 ms 68400 KB
#include "dungeons.h"
#include <bits/stdc++.h>
#define F first
#define S second
using namespace std;

const int N = 4e5 + 10 , Lg = 27;
const long long inf = 1e15 + 10;

int n;

vector <int> s , p , w , l;

long long f(long long x)
{
	if(x <= 0)
		return inf;
	return x;
}

struct item{
	long long mn;
	long long val;
	int id;
};

item a[2 * N][Lg];

item Get(item now , int len)
{
	if(len == 0)
		return now;
	long long id = now.id , mn = now.mn , val = now.val , dif = val - (val >= s[id]) * s[id];
	//cout << id << " WTF " << mn << " " << val << " " << len << endl;
	for(int i = Lg - 1 ; i >= 0 ; i--)  if((1 << i) <= len && a[id * 2 + (val >= s[id])][i].mn > dif)
	{
		item tmp = a[id * 2 + (val >= s[id])][i];
		return Get({min(mn , tmp.mn - dif) , tmp.val + dif , tmp.id} , len - (1 << i));
	}
	if(val >= s[id])
		return Get({min(mn , f(s[w[id]] - val - s[id])) , val + s[id] , w[id]} , len - 1);
	else
		return Get({min(mn , f(s[l[id]] - val - p[id])) , val + p[id] , l[id]} , len - 1);
}

void init(int nn, vector<int> ss, vector<int> pp, vector<int> ww, vector<int> ll) {
	n = nn;
	s = ss;
	p = pp;
	w = ww;
	l = ll;
	s.push_back(0);
	p.push_back(0);
	w.push_back(n);
	l.push_back(n);
	for(int i = 0 ; i <= n ; i++)
	{
		a[i << 1][0] = {f(s[l[i]] - p[i]) , p[i] , l[i]};
		a[(i << 1) + 1][0] = {f(s[w[i]] - s[i]) , 2 * s[i] , w[i]};
	}
	for(int j = 1 ; j < Lg ; j++)  for(int i = 0 ; i <= 2 * n + 1 ; i++)
	{
		a[i][j] = Get(a[i][j - 1] , (1 << (j - 1)));
		/*cout << i << " : " << j << endl;
		cout << a[i][j - 1].mn << " " << a[i][j - 1].val << " " << a[i][j - 1].id << endl;
		cout << a[i][j].mn << " " << a[i][j].val << " " << a[i][j].id << endl << endl;*/
	}
}

long long simulate(int x, int z) {
	item tmp = Get({inf , z , x} , 2e7);
	return tmp.val;
}

# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Incorrect 0 ms 348 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 2652 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2652 KB Output is correct
2 Correct 98 ms 68204 KB Output is correct
3 Correct 108 ms 68400 KB Output is correct
4 Correct 121 ms 68124 KB Output is correct
5 Correct 113 ms 67912 KB Output is correct
6 Correct 183 ms 68100 KB Output is correct
7 Correct 149 ms 68140 KB Output is correct
8 Correct 108 ms 67912 KB Output is correct
9 Correct 106 ms 68012 KB Output is correct
10 Correct 98 ms 67656 KB Output is correct
11 Correct 108 ms 67936 KB Output is correct
12 Correct 268 ms 68184 KB Output is correct
13 Correct 205 ms 68160 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2652 KB Output is correct
2 Correct 98 ms 68204 KB Output is correct
3 Correct 108 ms 68400 KB Output is correct
4 Correct 121 ms 68124 KB Output is correct
5 Correct 113 ms 67912 KB Output is correct
6 Correct 183 ms 68100 KB Output is correct
7 Correct 149 ms 68140 KB Output is correct
8 Correct 108 ms 67912 KB Output is correct
9 Correct 106 ms 68012 KB Output is correct
10 Correct 98 ms 67656 KB Output is correct
11 Correct 108 ms 67936 KB Output is correct
12 Correct 268 ms 68184 KB Output is correct
13 Correct 205 ms 68160 KB Output is correct
14 Correct 3 ms 2652 KB Output is correct
15 Incorrect 189 ms 67960 KB Output isn't correct
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 2652 KB Output is correct
2 Correct 98 ms 68204 KB Output is correct
3 Correct 108 ms 68400 KB Output is correct
4 Correct 121 ms 68124 KB Output is correct
5 Correct 113 ms 67912 KB Output is correct
6 Correct 183 ms 68100 KB Output is correct
7 Correct 149 ms 68140 KB Output is correct
8 Correct 108 ms 67912 KB Output is correct
9 Correct 106 ms 68012 KB Output is correct
10 Correct 98 ms 67656 KB Output is correct
11 Correct 108 ms 67936 KB Output is correct
12 Correct 268 ms 68184 KB Output is correct
13 Correct 205 ms 68160 KB Output is correct
14 Correct 3 ms 2652 KB Output is correct
15 Incorrect 189 ms 67960 KB Output isn't correct
16 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 2652 KB Output isn't correct
2 Halted 0 ms 0 KB -