답안 #660257

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
660257 2022-11-21T10:48:22 Z berr Naboj (COCI22_naboj) C++17
40 / 110
1000 ms 34000 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e5+37;
vector<int> adj[N], radj[N], siz(N), vis(N);
int flag=1;

void dfs(int x, int y)
{
    vis[x]=1;
    for(auto i: adj[x])
    {
        if(i==y) continue;
        if(vis[i]==1) flag=0;
        else dfs(i, x);
    }
    vis[x]=2;
}

int32_t main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);
        
    int n, m; cin>>n>>m;
    for(int i=0; i<m; i++)
    {
        int x, y; cin>>x>>y;
        adj[x].push_back(y);
        radj[y].push_back(x); 
        siz[x]++;   
    }
    queue<int> q;

    for(int i=1; i<=n; i++)
    {
        if(!vis[i]) dfs(i, i);

        if(siz[i]==0) q.push(i);
    }

    if(!flag)
    {
        cout<<-1; return 0;
    }

    else
    {
        vector<array<int, 2>> ans;

        while(q.size())
        {
            int x=q.front(); q.pop();
            ans.push_back({x, 1});
            for(auto i: radj[x])
            {
                siz[i]--;
                if(siz[i]==0) q.push(i);
            }

        }

        cout<<ans.size()<<"\n";
            for(auto i: ans) cout<<i[0]<<" "<<i[1]<<"\n";

    }
}   
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 12756 KB Output is correct
2 Correct 7 ms 12756 KB Output is correct
3 Correct 7 ms 12756 KB Output is correct
4 Correct 7 ms 12756 KB Output is correct
5 Correct 7 ms 12756 KB Output is correct
6 Correct 7 ms 12756 KB Output is correct
7 Correct 6 ms 12756 KB Output is correct
8 Correct 6 ms 12756 KB Output is correct
9 Correct 9 ms 12756 KB Output is correct
10 Correct 7 ms 12756 KB Output is correct
11 Correct 7 ms 12752 KB Output is correct
12 Correct 7 ms 12756 KB Output is correct
13 Correct 8 ms 12756 KB Output is correct
14 Correct 7 ms 12864 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 262 ms 27204 KB Output is correct
2 Correct 240 ms 29772 KB Output is correct
3 Correct 107 ms 21632 KB Output is correct
4 Correct 248 ms 29848 KB Output is correct
5 Correct 244 ms 29708 KB Output is correct
6 Correct 260 ms 29696 KB Output is correct
7 Correct 258 ms 29740 KB Output is correct
8 Correct 186 ms 26384 KB Output is correct
9 Correct 260 ms 29752 KB Output is correct
10 Correct 289 ms 29716 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 7 ms 12756 KB Output is correct
2 Correct 7 ms 12756 KB Output is correct
3 Correct 7 ms 12756 KB Output is correct
4 Correct 7 ms 12756 KB Output is correct
5 Correct 7 ms 12756 KB Output is correct
6 Correct 7 ms 12756 KB Output is correct
7 Correct 6 ms 12756 KB Output is correct
8 Correct 6 ms 12756 KB Output is correct
9 Correct 9 ms 12756 KB Output is correct
10 Correct 7 ms 12756 KB Output is correct
11 Correct 7 ms 12752 KB Output is correct
12 Correct 7 ms 12756 KB Output is correct
13 Correct 8 ms 12756 KB Output is correct
14 Correct 7 ms 12864 KB Output is correct
15 Correct 262 ms 27204 KB Output is correct
16 Correct 240 ms 29772 KB Output is correct
17 Correct 107 ms 21632 KB Output is correct
18 Correct 248 ms 29848 KB Output is correct
19 Correct 244 ms 29708 KB Output is correct
20 Correct 260 ms 29696 KB Output is correct
21 Correct 258 ms 29740 KB Output is correct
22 Correct 186 ms 26384 KB Output is correct
23 Correct 260 ms 29752 KB Output is correct
24 Correct 289 ms 29716 KB Output is correct
25 Execution timed out 1072 ms 34000 KB Time limit exceeded
26 Halted 0 ms 0 KB -