OIG I - bit

// https://szkopul.edu.pl/problemset/problem/HP0-iQt7v7vElza8XxoucKto/site/?key=statement
// OIG I (3 etap)

#include <iostream>

constexpr int sizik = 128, INF = 100 * 1000 * 1001;

int odl[sizik][sizik];

void FloydWarshall(int n) {
    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            for (int k = 1; k <= n; k++) {
                if (odl[j][k] > odl[j][i] + odl[i][k]) {
                    odl[j][k] = odl[j][i] + odl[i][k];
                }
            }
        }
    }
}

void FloydWarshall2(int n, int x, int y, int value) {
    for (int u = 1; u <= n; u++) {
        for (int v = 1; v <= n; v++) {
            if (odl[u][v] > odl[u][x] + odl[y][v] + value) {
                odl[u][v] = odl[u][x] + odl[y][v] + value;
            }
            if (odl[u][v] > odl[u][y] + odl[x][v] + value) {
                odl[u][v] = odl[u][y] + odl[x][v] + value;
            }
        }
    }
}

void buildStreet(int a, int b, int w) {
    odl[a][b] = std::min(odl[a][b], w);
    odl[b][a] = std::min(odl[b][a], w);
}

int main() {
    std::ios_base::sync_with_stdio(0);
    std::cin.tie(0);
    std::cout.tie(0);

    int n, k, m;
    std::cin >> n >> k >> m;

    for (int i = 1; i <= n; i++) {
        for (int j = 1; j <= n; j++) {
            odl[i][j] = INF;
        }
        odl[i][i] = 0;
    }

    for (int i = 0; i < k; i++) {
        int a, b, w;
        std::cin >> a >> b >> w;

        buildStreet(a, b, w);
    }

    FloydWarshall(n);

    for (int i = 0; i < m; i++) {
        int a, b, w;
        std::cin >> a >> b >> w;

        int prev = odl[1][n];

        int prev_value = odl[a][b];

        if (w >= prev_value) {
            std::cout << "0\n";
        } else {
            if ((((odl[1][a] + w + odl[b][n]) < prev) || (odl[1][b] + w + odl[a][n]) < prev)) {
                buildStreet(a, b, w);
                FloydWarshall2(n, a, b, w);
                std::cout << "1\n";
            } else {
                std::cout << "0\n";
            }
        }
    }

    return 0;
}