Submission #2978667


Source Code Expand

#include<bits/stdc++.h>
using namespace std;

//#define int long long 
#define put(n) cout<<(n)<<"\n"
#define FOR(i,num,N) for(int(i)=(num);(i)<(N);(i)++)
#define RFOR(i,num,N) for(int (i)=(num);(i)>(N);(i)--)
#define all(v) (v).begin() , (v).end()
#define rall(v) (v).rbegin() , (v).rend()

int N,M;
vector<pair<int,int>> U_V;
vector<bool> reached;
int ans = 0;
bool closed;

void dfs(int node){
    reached[node] = true;//到達した
    FOR(i,0,M){
        if(U_V[i].first == node){//頂点と同じU[i]を探す
            if(!reached[U_V[i].second]){//V[i]に辿りついていないなら潜る
                dfs(U_V[i].second);
            }
            else closed = true;//連結成分に閉路があればフラグを立てる
        }
    }
}

signed main(){
   //閉路を含まないグラフ ->閉路を探す ->DFS?(全部辿れそう)->どうやって閉路を探す?
   //閉路にはループがあるからそれを使えはよさそう?
   //始点まで戻ってこれるのが閉路を持つグラフ
   //連結かどうかを調べる必要はなさそう(与えられているので)
   //木でないなら一筆書きができる
    
    cin>>N>>M;
    U_V.resize(M);
    reached.assign(N+1,false);

    FOR(i,0,M){
       cin>>U_V[i].first>>U_V[i].second;
    }

    //sort(all(U_V));

    FOR(i,1,N+1){
        if(!reached[i]){//各頂点を調べて、まだたどり着いていないなら
            closed = false;
            ++ans;//連結成分をカウント
            dfs(i);//頂点を始点に潜る
            if(closed) --ans;//連結成分に閉路があればカウントしない
        }
    }
    put(ans);
}

/*
5 6
1 2
1 3
1 4
1 5
2 3
4 5
*/

Submission Info

Submission Time
Task B - バウムテスト
User ugis
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1766 Byte
Status WA
Exec Time 4 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 100
Status
AC × 3
AC × 22
WA × 12
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
All subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_25.txt, subtask1_26.txt, subtask1_27.txt, subtask1_28.txt, subtask1_29.txt, subtask1_30.txt, subtask1_31.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 1 ms 256 KB
subtask0_sample_02.txt AC 1 ms 256 KB
subtask0_sample_03.txt AC 1 ms 256 KB
subtask1_01.txt AC 1 ms 256 KB
subtask1_02.txt AC 1 ms 256 KB
subtask1_03.txt AC 1 ms 256 KB
subtask1_04.txt AC 1 ms 256 KB
subtask1_05.txt AC 1 ms 256 KB
subtask1_06.txt AC 1 ms 256 KB
subtask1_07.txt WA 1 ms 256 KB
subtask1_08.txt WA 1 ms 256 KB
subtask1_09.txt AC 1 ms 256 KB
subtask1_10.txt AC 1 ms 256 KB
subtask1_11.txt AC 1 ms 256 KB
subtask1_12.txt AC 1 ms 256 KB
subtask1_13.txt WA 1 ms 256 KB
subtask1_14.txt AC 1 ms 256 KB
subtask1_15.txt WA 1 ms 256 KB
subtask1_16.txt AC 1 ms 256 KB
subtask1_17.txt WA 1 ms 256 KB
subtask1_18.txt WA 1 ms 256 KB
subtask1_19.txt WA 1 ms 256 KB
subtask1_20.txt WA 1 ms 256 KB
subtask1_21.txt AC 1 ms 256 KB
subtask1_22.txt WA 1 ms 256 KB
subtask1_23.txt AC 1 ms 256 KB
subtask1_24.txt AC 1 ms 256 KB
subtask1_25.txt AC 1 ms 256 KB
subtask1_26.txt WA 1 ms 256 KB
subtask1_27.txt WA 1 ms 256 KB
subtask1_28.txt WA 1 ms 256 KB
subtask1_29.txt AC 4 ms 256 KB
subtask1_30.txt AC 4 ms 256 KB
subtask1_31.txt AC 1 ms 256 KB