CSES - Datatähti Open 2017 - Results
Submission details
Task:Tunnels
Sender:Wrinx
Submission time:2017-01-21 20:38:16 +0200
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp:8:1: error: 'l' does not name a type
 l unsigned long long
 ^
input/code.cpp:11:1: error: 'vector' does not name a type
 vector < int > g[200000];
 ^
input/code.cpp:13:1: error: 'set' does not name a type
 set < int > s;
 ^
input/code.cpp:14:1: error: 'vector' does not name a type
 vector < int > k;
 ^
input/code.cpp: In function 'void dfs(int)':
input/code.cpp:19:18: error: 'g' was not declared in this scope
     for (auto u: g[v])
                  ^
input/code.cpp:24:18: error: 'g' was not declared in this scope
     for (auto u: g[v]){
                  ^
input/code.cpp:26:24: error: 's' was not declared in this scope
         if (b[u] == 0) s.insert(u);
                        ^
input/code.cpp:18:9: warning: unused variable 't' [-Wunused-variable]
     int t = 0;
         ^
input/code.cpp: In function 'int main()':
input/code.cpp:31:5: error: 'ios_base' has not been declared
     ios_base::sync_with_stdio(false);
     ^
input/code.cpp:32:5: error: 'cin' was...

Code

#include<bits/stdc++.h>

#define F first
#define S second
#define ll long long
#define ul

l unsigned long long
#define pb push_back
using namespace std;
vector < int > g[200000];
int ans, b[200000], used[200000];
set < int > s;
vector < int > k;
void dfs(int v)
{
    used[v] = 1;
    int t = 0;
    for (auto u: g[v])
    if (!used[u]){
        dfs(u);
        break;
    }
    for (auto u: g[v]){
        b[u]--;
        if (b[u] == 0) s.insert(u);
    }
}
int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < m; i++){
        int u, v;
        cin >> u >> v;
        g[u].pb(v);
        b[v]++;
    }
    for (int i = 1; i <= n; i++) if (b[i] == 0) k.pb(i);
    for (int i = 1; i <= n; i++){
        for (auto u: k)
        if (!used[u]){
            ans++;
            dfs(u);
        }
        k.clear();
        for (int i: s)
            k.pb(i);
        s.clear();
    }
    cout << ans;
}