Submission #1180877

#TimeUsernameProblemLanguageResultExecution timeMemory
1180877meicrisMarshmallow Molecules (CCO19_day2problem2)C++17
0 / 25
4094 ms3832 KiB
#include<bits/stdc++.h>
using namespace std;

vector<vector<int>> grafo;
vector<bool> vis;
int cont=0;
int n,q;

void dfs(int nodo)
{
    for(int i=0;i<grafo[nodo].size();i++)
    {
        int u=grafo[nodo][i];
        if(grafo[nodo][i+1]<=n) {
            for(int j=i+1;j<grafo[nodo].size();j++){
                int v=grafo[nodo][j];
                    if(u<v && find(grafo[u].begin(),grafo[u].end(),v)==grafo[u].end()){
                        grafo[u].push_back(v);
                        cont++;
                    }


            }
            if(!vis[i])dfs(grafo[nodo][i]);
        }
    }

}

void solve(){
int a,b;
cin>>n>>q;
grafo.assign(n+1,vector<int> ());
vis.assign(n+1,false);
while(q--)
{
    cin>>a>>b;
    grafo[a].push_back(b);
    cont++;
}
for(int i=1;i<=n;i++)
{
    sort(grafo[i].begin(),grafo[i].end());
    if(!vis[i]) dfs(i),vis[i]=true;
}
cout<<cont;
}
int main()
{
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...