Submission #4143421
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int n, m;
vector<int> edge[100005];
int num[100005] = {0};
int dp[100005] = {0};
int solve();
int main() {
cin >> n >> m;
for(int i = 0; i < m; ++i) {
int x, y;
cin >> x >> y;
edge[x - 1].push_back(y - 1);
++num[y - 1];
}
cout << solve() << endl;
return 0;
}
int solve() {
int ans = 0;
queue<int> qu;
for(int i = 0; i < n; ++i)
if(num[i] == 0) qu.push(i);
while(qu.size() > 0) {
int now = qu.front();
qu.pop();
for(int i = 0; i < edge[now].size(); ++i) {
int to = edge[now][i];
if(--num[to] == 0) {
dp[to] = dp[now] + 1;
ans = max(ans, dp[to]);
qu.push(to);
}
}
}
return ans;
}
Submission Info
| Submission Time | |
|---|---|
| Task | G - Longest Path |
| User | m_tsubasa |
| Language | C++14 (GCC 5.4.1) |
| Score | 100 |
| Code Size | 767 Byte |
| Status | AC |
| Exec Time | 73 ms |
| Memory | 6528 KiB |
Judge Result
| Set Name | All | ||
|---|---|---|---|
| Score / Max Score | 100 / 100 | ||
| Status |
|
| Set Name | Test Cases |
|---|---|
| All | 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 0_00 | AC | 3 ms | 2560 KiB |
| 0_01 | AC | 3 ms | 2560 KiB |
| 0_02 | AC | 3 ms | 2560 KiB |
| 1_00 | AC | 3 ms | 2560 KiB |
| 1_01 | AC | 71 ms | 6528 KiB |
| 1_02 | AC | 44 ms | 3200 KiB |
| 1_03 | AC | 73 ms | 5376 KiB |
| 1_04 | AC | 67 ms | 4352 KiB |
| 1_05 | AC | 67 ms | 3840 KiB |
| 1_06 | AC | 58 ms | 3584 KiB |
| 1_07 | AC | 54 ms | 3456 KiB |
| 1_08 | AC | 52 ms | 3328 KiB |
| 1_09 | AC | 49 ms | 3200 KiB |
| 1_10 | AC | 45 ms | 3200 KiB |
| 1_11 | AC | 60 ms | 3712 KiB |
| 1_12 | AC | 71 ms | 5120 KiB |
| 1_13 | AC | 69 ms | 4992 KiB |
| 1_14 | AC | 62 ms | 3712 KiB |
| 1_15 | AC | 60 ms | 3584 KiB |
| 1_16 | AC | 68 ms | 4608 KiB |
| 1_17 | AC | 72 ms | 5632 KiB |
| 1_18 | AC | 66 ms | 4096 KiB |