제출 #1314573

#제출 시각아이디문제언어결과실행 시간메모리
1314573hxluk.kaCijanobakterije (COCI21_cijanobakterije)C++20
0 / 70
23 ms14024 KiB
#include <iostream>
#include <vector>
#include <utility>
using namespace std;
const int nx=1e5+3;
int n, m, u, v, in[nx], vs[nx], mx, pmx, res;
vector<int> adj[nx], radj[nx];
vector<pair<int, int>> r;
void dfs(int x, int val) {
    if (val>mx) mx=val, pmx=mx;
    for (int u:adj[x]) {
        dfs(u, val+1);
        vs[u];
    }
}
int main() {
    cin.tie(0)->sync_with_stdio(0);

    cin>>n>>m;
    for (int i=0; i<m; i++) {
        cin>>u>>v;
        adj[u].push_back(v);
        radj[v].push_back(u);
        in[v]++;
    }

    for (int i=1; i<=n; i++) {
        if (vs[i]||in[i]) continue;
        res++;
        mx=0;
        pmx=0;
        dfs(i, 0);
        r.push_back({mx, pmx});
    }

    if (res==1) {
        cout<<mx+1;
    } else {
        for (auto [a,b]:r) res+=a+b;
        cout<<res;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...