Cod sursa(job #923022)

Utilizator S7012MYPetru Trimbitas S7012MY Data 22 martie 2013 19:49:50
Problema Pioni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <fstream>
#include <vector>
#define DN 20005
using namespace std;

typedef vector<int>::iterator it;

vector<int> gr[DN],rez;
int t,n,m,viz[DN],nxt[DN];

void dfs(int s) {
  viz[s]=1;
  for(it i=gr[s].begin(); i!=gr[s].end(); ++i) {
    if(!viz[*i]) dfs(*i);
    if(!nxt[*i])  nxt[s]=*i;
  }
}

int main()
{
    ifstream f("pioni.in");
    ofstream g("pioni.out");
    f>>t>>n>>m;
    for(int i=0; i<m; ++i) {
      int a,b;
      f>>a>>b;
      gr[a].push_back(b);
    }
    for(int i=1; i<=n; ++i) if(!viz[i]) dfs(i);
    for(;t;--t) {
      int nrp,a;
      for(f>>nrp;nrp;--nrp) {
        f>>a;
        if(nxt[a]) rez.push_back(a);
      }
      if(rez.empty()) g<<"Fumeanu\n";
      else {
        g<<"Nargy\n"<<rez.size()<<'\n';
        for(int i=0; i<rez.size(); ++i) g<<rez[i]<<' '<<nxt[rez[i]]<<'\n';
      }
      rez.clear();
    }
    return 0;
}