Submission #924442

#TimeUsernameProblemLanguageResultExecution timeMemory
924442Faisal_SaqibToll (BOI17_toll)C++17
0 / 100
453 ms524288 KiB
#include <iostream>
#include <vector>
using namespace std;
const int N=5e4;
vector<pair<int,int>> ma[N];
vector<int> MinDist[N];	
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 i=0;i<n;i++)
	{
		MinDist[i].push_back(0);
		for(int j=i+1;j<n;j++)
			MinDist[i].push_back(1e9);
	}
	for(int j=0;j<m;j++)
	{
		int a,b,t;
		cin>>a>>b>>t;
		ma[a].push_back({b,t});
	}
	for(int i=n-2;i>=0;i--)
	{
		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);
			}
		}
	}
	while(q--)
	{
		int x,y;
		cin>>x>>y;
		if(x<=y)
		{
			if(MinDist[x][y-x]==1e9)
				cout<<-1<<'\n';
			else
				cout<<MinDist[x][y-x]<<'\n';
		}
		else
		{
			cout<<-1<<'\n';
		}
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...