CCCPaste

Untitled

#include 
#include 
#include 
#include 


using namespace std;
struct node{
int idx;
int cost;
int distance;
int ostanata;
node(){

}
node(int idx2, int cost2, int distance2, int ostanato2){
idx=idx2;
cost=cost2;
ostanata=ostanato2;
distance=distance2;
}
bool operator < (const node &tmp)const{
return cost > tmp.cost;
}
};
int main()
{

    int n, m, x, k, l;
    cin>>n>>x>>k>>l>>m;

    vector>graph[n+5];



    for(int i=0; i>a>>b>>c;
    graph[a].push_back(make_pair(b, c));
        graph[b].push_back(make_pair(a, c));

    }

    int distance[n + 5][k + 5][l + 5];

    for(int i=0; i<=n; i++){
     for(int j=0; j<=k; j++){
        for(int z=0; z<=l; z++){
        distance[i][j][z]=2e9;
      }
     }
    }
    priority_queuep;
    p.push(node(1, 0, l, k));
    while(!p.empty()){
        node c=p.top();
        p.pop();

        int nova_distanca=c.distance;
        if(c.idx<=x and c.distance > 0){
            nova_distanca=0;
        }
        if(nova_distanca>0){
        for(int i=0; i=0 and c.cost0){
                    c.ostanata--;
                      nova_distanca=l;
                      for(int i=0; i=0 and c.cost