Submission #924449

# Submission time Handle Problem Language Result Execution time Memory
924449 2024-02-09T04:11:32 Z Faisal_Saqib Toll (BOI17_toll) C++17
0 / 100
657 ms 524288 KB
#include <iostream>
#include <vector>
using namespace std;
const int N=5e4;
vector<pair<int,int>> ma[N],query[N];
vector<int> MinDist[N];	
const int O=1e4;
int ans[O];
int main()
{
	cin.tie(0);
	cout.tie(0);
	ios::sync_with_stdio(0);
	int k,n,m,q;
	cin>>k>>n>>m>>q;
	// q<=1e4
	for(int j=0;j<m;j++)
	{
		int a,b,t;
		cin>>a>>b>>t;
		ma[a].push_back({b,t});
	}
	for(int lp=0;lp<q;lp++)
	{
		int x,y;
		cin>>x>>y;
		query[x].push_back({y,lp});
	}
	for(int i=n-1;i>=0;i--)
	{
		MinDist[i].push_back(0);
		for(int j=i+1;j<n;j++)
			MinDist[i].push_back(1e9);
		if((i/k)!=((i+1)/k))
			for(int j=i+k+1;j<(i+k+k+1);j++)
				MinDist[j].clear();
		for(int j=i+1;j<=n;j++)
		{
			for(auto [l,w]:ma[i])
			{
				MinDist[i][j-i]=min(MinDist[i][j-i],MinDist[l][j-l]+w);
			}
		}
		for(auto [j,ind]:query[i])
		{
			if(j<i)
			{
				ans[ind]=-1;
			}
			else
			{
				if(MinDist[i][j-i]==1e9)
				{
					ans[ind]=-1;
				}
				else
				{
					ans[ind]=MinDist[i][j-i];
				}
			}
		}
	}
	for(int j=0;j<q;j++)
	{
		cout<<ans[j]<<'\n';
	}
	return 0;
}
# Verdict Execution time Memory Grader output
1 Runtime error 592 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 657 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3928 KB Output is correct
2 Incorrect 1 ms 3932 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 3928 KB Output is correct
2 Incorrect 1 ms 3932 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 592 ms 524288 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -