Submission #1113908

# Submission time Handle Problem Language Result Execution time Memory
1113908 2024-11-17T19:10:09 Z raspy Jakarta Skyscrapers (APIO15_skyscraper) C++17
10 / 100
38 ms 50768 KB
#include <bits/stdc++.h>

#define int long long
#define vi vector<int>
#define ii pair<int, int>
#define f first
#define s second
#define all(x) (x).begin(), (x).end()
#define P 31
#define mod 1'000'000'007
#define inf 1'000'000'000'000
#define pb push_back
#define str string
#define sz(x) (x).size()
#define vvi vector<vi>
#define fun function
#define oopt cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false);
#define file freopen("problemname.in", "r", stdin); freopen("pr.out", "w", stdout);
#define dbg(v) cout << "Line(" << __LINE__ << ") -> " << #v << " = " << (v) << endl;

using namespace std;
template <class T, int SZ> using arr = array<T, SZ>;

int b[30001];
int power[30001];
set<int> pravi[30001];
set<ii> graf[30001];
int ob[30001];
int obp[201][30001];

void solve()
{
	int n, m;
	cin >> n >> m;
	for (int i = 0; i < 30001; i++)
	{
		ob[i] = inf;
		for (int j = 0; j < 201; j++)
			obp[j][i] = inf;
	}
	for (int i = 0; i < m; i++)
	{
		cin >> b[i] >> power[i];
		pravi[b[i]].insert(power[i]);
	}
	priority_queue<tuple<int, int, int>> pq;
	if (power[0] > 200)
	{
		pq.push({0, b[0], -1});
		ob[b[0]] = 0;
	}
	else
	{
		pq.push({0, b[0], power[0]});
		obp[power[0]][b[0]] = 0;
	}
	while (pq.size())
	{
		auto [d, pos, pow] = pq.top();
		pq.pop();
		if (pos == b[1])
		{
			cout << d << "\n";
			return;
		}
		if (obp[pow][pos] < d) continue;
		if (pos-pow >= 0 && obp[pow][pos-pow] > d+1)
		{
			obp[pow][pos-pow] = d+1;
			pq.push({d+1, pos-pow, pow});
		}
		if (pos+pow < n && obp[pow][pos+pow] > d+1)
		{
			obp[pow][pos+pow] = d+1;
			pq.push({d+1, pos+pow, pow});
		}
		for (int p : pravi[pos])
		{
			if (obp[p][pos] > d)
			{
				obp[p][pos] = d;
				pq.push({d, pos, p});
			}
		}
	}
	cout << -1 << "\n";
}

signed main()
{
	oopt;
	int t = 1;
	// cin >> t;
	while (t--)
		solve();
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 25 ms 50504 KB Output is correct
2 Correct 27 ms 50512 KB Output is correct
3 Correct 26 ms 50512 KB Output is correct
4 Correct 30 ms 50700 KB Output is correct
5 Correct 30 ms 50504 KB Output is correct
6 Correct 30 ms 50628 KB Output is correct
7 Correct 38 ms 50504 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 35 ms 50516 KB Output is correct
2 Correct 28 ms 50512 KB Output is correct
3 Correct 29 ms 50512 KB Output is correct
4 Correct 28 ms 50504 KB Output is correct
5 Correct 25 ms 50504 KB Output is correct
6 Correct 26 ms 50684 KB Output is correct
7 Correct 28 ms 50484 KB Output is correct
8 Correct 31 ms 50504 KB Output is correct
9 Correct 31 ms 50504 KB Output is correct
10 Incorrect 33 ms 50768 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 31 ms 50512 KB Output is correct
2 Correct 32 ms 50512 KB Output is correct
3 Correct 31 ms 50632 KB Output is correct
4 Correct 26 ms 50512 KB Output is correct
5 Correct 26 ms 50504 KB Output is correct
6 Correct 24 ms 50528 KB Output is correct
7 Correct 26 ms 50480 KB Output is correct
8 Correct 24 ms 50512 KB Output is correct
9 Correct 27 ms 50512 KB Output is correct
10 Incorrect 25 ms 50504 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 27 ms 50512 KB Output is correct
2 Correct 26 ms 50512 KB Output is correct
3 Correct 29 ms 50520 KB Output is correct
4 Correct 29 ms 50512 KB Output is correct
5 Correct 27 ms 50512 KB Output is correct
6 Correct 29 ms 50684 KB Output is correct
7 Correct 27 ms 50504 KB Output is correct
8 Correct 29 ms 50512 KB Output is correct
9 Correct 28 ms 50512 KB Output is correct
10 Incorrect 27 ms 50512 KB Output isn't correct
11 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 27 ms 50524 KB Output is correct
2 Correct 25 ms 50532 KB Output is correct
3 Correct 26 ms 50512 KB Output is correct
4 Correct 25 ms 50536 KB Output is correct
5 Correct 28 ms 50512 KB Output is correct
6 Correct 27 ms 50520 KB Output is correct
7 Correct 28 ms 50512 KB Output is correct
8 Correct 27 ms 50512 KB Output is correct
9 Correct 27 ms 50504 KB Output is correct
10 Incorrect 25 ms 50620 KB Output isn't correct
11 Halted 0 ms 0 KB -