1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #include<iostream> #include<algorithm> #include<queue> #include<cstring> using namespace std; typedef struct node { long start; long death; } ii; long dp[70001]; ii nodes[70001]; int N; int bfs(long start, vector < vector < long > >&Graph) { long i; long deathMain = nodes[start].death; dp[start] = 0; queue < long >Q; Q.push(start); while (!Q.empty()) { int current = Q.front(); Q.pop(); for (i = 0; i < Graph[current].size(); i++) { if (nodes[Graph[current][i]].start <= deathMain) { Q.push(Graph[current][i]); dp[Graph[current][i]] = dp[current] + 1; } } } } int main() { int test; cin >> test; long i; while (test--) { scanf("%ld", &N); vector < vector < long > >Graph(N + 1); long i, parent, death, start; for (i = 1; i <= N; i++) { scanf("%ld %ld %ld", &parent, &start, &death); nodes[i].start = start; nodes[i].death = death; parent++; Graph[parent].push_back(i); } long j; for (i = 1; i <= N; i++) { memset(dp, 0, sizeof(dp)); bfs(i, Graph); long ans = 0; for (j = 1; j <= N; j++) ans = max(ans, dp[j]); printf("%ld ", ans); } printf("\n"); } } |
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGFsZ29yaXRobT4KI2luY2x1ZGU8cXVldWU+CiNpbmNsdWRlPGNzdHJpbmc+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgc3RydWN0IG5vZGUgewogICAgbG9uZyBzdGFydDsKICAgIGxvbmcgZGVhdGg7Cn0gaWk7CmxvbmcgZHBbNzAwMDFdOwppaSBub2Rlc1s3MDAwMV07CmludCBOOwppbnQgYmZzKGxvbmcgc3RhcnQsIHZlY3RvciA8IHZlY3RvciA8IGxvbmcgPiA+JkdyYXBoKQp7CiAgICBsb25nIGk7CiAgICBsb25nIGRlYXRoTWFpbiA9IG5vZGVzW3N0YXJ0XS5kZWF0aDsKICAgIGRwW3N0YXJ0XSA9IDA7CiAgICBxdWV1ZSA8IGxvbmcgPlE7CiAgICBRLnB1c2goc3RhcnQpOwogICAgd2hpbGUgKCFRLmVtcHR5KCkpIHsKCWludCBjdXJyZW50ID0gUS5mcm9udCgpOwoJUS5wb3AoKTsKCWZvciAoaSA9IDA7IGkgPCBHcmFwaFtjdXJyZW50XS5zaXplKCk7IGkrKykgewoJICAgIGlmIChub2Rlc1tHcmFwaFtjdXJyZW50XVtpXV0uc3RhcnQgPD0gZGVhdGhNYWluKSB7CgkJUS5wdXNoKEdyYXBoW2N1cnJlbnRdW2ldKTsKCQlkcFtHcmFwaFtjdXJyZW50XVtpXV0gPSBkcFtjdXJyZW50XSArIDE7CgkgICAgfQoJfQogICAgfQp9CiAKaW50IG1haW4oKQp7CiAgICBpbnQgdGVzdDsKICAgIGNpbiA+PiB0ZXN0OwogICAgbG9uZyBpOwogICAgd2hpbGUgKHRlc3QtLSkgewoJc2NhbmYoIiVsZCIsICZOKTsKCXZlY3RvciA8IHZlY3RvciA8IGxvbmcgPiA+R3JhcGgoTiArIDEpOwoJbG9uZyBpLCBwYXJlbnQsIGRlYXRoLCBzdGFydDsKCWZvciAoaSA9IDE7IGkgPD0gTjsgaSsrKSB7CgkgICAgc2NhbmYoIiVsZCAlbGQgJWxkIiwgJnBhcmVudCwgJnN0YXJ0LCAmZGVhdGgpOwoJICAgIG5vZGVzW2ldLnN0YXJ0ID0gc3RhcnQ7CgkgICAgbm9kZXNbaV0uZGVhdGggPSBkZWF0aDsKCSAgICBwYXJlbnQrKzsKCSAgICBHcmFwaFtwYXJlbnRdLnB1c2hfYmFjayhpKTsKCX0KCWxvbmcgajsKCWZvciAoaSA9IDE7IGkgPD0gTjsgaSsrKSB7CgkgICAgbWVtc2V0KGRwLCAwLCBzaXplb2YoZHApKTsKCSAgICBiZnMoaSwgR3JhcGgpOwoJICAgIGxvbmcgYW5zID0gMDsKCSAgICBmb3IgKGogPSAxOyBqIDw9IE47IGorKykKCQlhbnMgPSBtYXgoYW5zLCBkcFtqXSk7CgkgICAgcHJpbnRmKCIlbGQgIiwgYW5zKTsKIAogCgl9CgoJcHJpbnRmKCJcbiIpOwogICAgfQp9Cg==
-
upload with new input
-
result: Success time: 0.01s memory: 3684 kB returned value: 0
2 5 -1 0 10 0 1 5 0 2 8 0 2 5 3 10 12 9 -1 0 10 0 1 1 0 2 2 1 2 3 1 3 4 2 2 3 2 2 4 6 10 11 6 20 30
2 0 0 0 0 3 0 1 0 0 0 0 0 0


