페이지

3758번: KCPC

https://www.acmicpc.net/problem/3758


$O(T(n+m))$


#include<cstdio>
int T;
int main() {
    for (scanf("%d", &T); T--;) {
        int n, k, t, m, p[101][101] = { 0, }, x, y, z, s[101] = { 0, }, c[101] = { 0, }, l[101] = { 0, }, r = 1;
        scanf("%d%d%d%d", &n, &k, &t, &m);
        for (int i = 0; i<m; i++) {
            scanf("%d%d%d", &x, &y, &z);
            if (z > p[x][y]) s[x] += z - p[x][y], p[x][y] = z;
            c[x]++;
            l[x] = i;
        }
        for (int i = 1; i <= n; i++)
            r += s[i] > s[t] || s[i] == s[t] && (c[i] < c[t] || c[i] == c[t] && l[i] < l[t]);
        printf("%d\n", r);
    }
    return 0;
}

댓글 없음 :

댓글 쓰기