LASTSHOT

4 3
1 2
2 4
3 1
5 5 
1 2 
1 3 
4 3 
4 5 
5 2 
5 6 
1 2 
1 3 
4 3 
4 5 
5 2 
1 4
5 6 
1 2 
1 3 
4 3 
4 5 
5 2 
3 4
5 6 
1 2 
1 3 
4 3 
4 5 
5 2 
3 5
10 10
1 5
3 2
6 8
3 5
9 8
5 4
6 2
2 1
7 9
3 2
1 2
1 2
3 3
1 2
1 2
2 1
5 3
1 2
1 2
2 1
5 3
1 2
1 2
5 3
1 2
1 5
3 2
6 8
3 5
9 8
5 4
6 2
2 1
7 9
10 9
1 5
3 2
6 8
3 5
9 8
5 4
6 2
2 1
7 9
6 7
1 3
3 5
5 2
4 1
4 3
4 5
4 6
6 5
1 3
2 3
5 6
6 5
5 6
6 5
1 3
3 2
5 6
6 5
5 6
6 4
1 2
2 3
5 6
6 5
6 4
1 3
3 2
5 6
6 5
6 5
1 3
3 2
5 6
6 5
5 6
6 5
1 2
2 3
5 6
6 5
5 6
6 5
1 2
3 2
5 6
6 5
5 6
6 7
1 3
3 5
5 2
4 1
4 3
4 5
4 6
5 3
1 2
3 4
3 5
6 5
1 3
2 3
5 6
6 5
5 6
5 5 
1 2 
1 3 
4 3 
4 5 
5 2
9 10
1 5
3 2
6 8
3 5
9 8
5 4
6 2
2 1
7 9
9 9
1 5
3 2
6 8
3 5
9 8
5 4
6 2
2 1
7 9
10 10
1 5
3 2
6 8
3 5
9 8
5 4
6 2
2 1
7 9
1 3
#include 
using namespace std;
vector  d[50001];
bool v[50001];
int max1,pos;
void dfs(int s)
{  //cout<>n>>m;
    while(m--)
    {
        cin>>u>>w;
        d[w].push_back(u);
    }
    for(int i=1;i<=n;i++)
    {
        max1=0;
        std::fill(v,v+n+1,false);
        dfs(i);
        if(sum
4 3
1 4
2 3
3 4
5 4
2 1
3 1
4 1
5 1
4 3
1 2
2 4
1 3
4 3
1 2
3 2
4 2
4 3
1 2
2 1
3 2
6 5
1 2
3 2
4 2
5 2
6 2
6 4
1 2
3 2
4 2
5 2
#include 
#define CYN  ios_base::sync_with_stdio(0);cin.tie(NULL);
using namespace std;
const int MAX=1e5+5;
bool visited[MAX];
int V;
int path[MAX];
listgraph[MAX];
int Path(int u,int v,int back[])
{
    if(u==v)
        return 1;
    else
        if(back[v]==-1)
            return -1;
    Path(u,back[v],back);
}
void PrintPath2(int s,int f, int back[])
{
    int b[MAX];
    int m=0;
    while(1)
    {
        b[m++]=f;
        f=back[f];
        if(!f)
        {
            b[m++]=s;
            break;
        }
    }
    for(int i=m--;i>=0;i--)
    {
        cout<s1;
    visited[s]=true;
    s1.push(s);
    list ::iterator i;
    while(!s1.empty())
    {
        s=s1.top();
        s1.pop();

        for(i=graph[s].begin();i!=graph[s].end();i++)
        {
            if(!visited[*i])
            {
                visited[*i]=true;
                s1.push(*i);
                path[*i]=s;
            }
        }
    }
}
void DFS(int s,int &dem)
{
    dem++;
    memset(visited,false,sizeof(visited));
    list::iterator i;
    visited[s]=true;
    for(i=graph[s].begin();i!=graph[s].end();i++)
    {
        if(!visited[*i])
        {
            //path[*i]=true;
            DFS(*i,dem);
        }
    }
}
int main()
{
    CYN;
    #ifndef ONLINE_JUDGE
        freopen("dabi.inp","r",stdin);
    #endif
    int E,u,v;
    cin>>V>>E;
    for(int i=0;i>u>>v;
        graph[u].push_back(v);
        //graph[v].push_back(u);
    }
    int Max(-1e5+1);
    for(int i=1;i<=V;i++)
    {
        int dem(0);
        DFS(i,dem);
        //if(Path(i,V,back))
        Max=max(Max,dem);
    }
    cout<
0
0
4 0
4 3
1 2
2 4
1 3
10 5
1 2
3 5
2 4
4 6
6 10
5 5 
1 2 
1 3 
4 3 
4 5 
5 1
5 5 
1 2 
1 3 
4 3 
4 5 
1 5
5 5 
1 2 
1 3 
4 3 
4 5 
1 1
5 5 
1 2 
1 3 
5 5 
1 2 
1 3 
4 3 
4 5 
5 4
1 2 
1 3 
4 3 
4 5 
5 5
1 2 
1 3 
4 3 
4 5
1 5 
5 5
1 2 
1 3 
4 3 
4 5
4 2 
5 5
1 2 
1 3 
4 3 
4 5
4 1
10 5
1 2
2 3
3 4
4 5
5 6