Cod sursa(job #1383890)

Utilizator katakonst94Pirvu Constantin Catalin katakonst94 Data 10 martie 2015 18:55:03
Problema Stramosi Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.68 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
char mat[10000][10000];
int vis[10000]={};
int costuri[10000][10000];
int ndfin;
int c=0;
void dfs(int nod,int n,int rad[])
{
    ndfin=0;
    //cout<<nod<<" ";
    int ok=1;
    ndfin=nod;
    for(int i=1;i<=n;i++)
    {

        if(mat[nod][i]&&vis[i]==0)
        {

          ndfin=0;
            vis[nod]=1;

            rad[i]=rad[nod];
            c++;
            costuri[c][rad[nod]]=i;
            dfs(i,n,rad);

        }




}
}
int main()
{
    int n,p;
    f>>n>>p;
    for(int i=1;i<=n;i++)
    {
        int x;
        f>>x;
        mat[i][x]=1;
    }



    for(int i=1;i<=n;i++){
     //c=0;
    int rad[10000];
    //cout<<i<<"  "<<vis[i]<<"  \n";

    if(vis[i]==0)
    {
        c=0;
        rad[i]=i;

               vis[i]=1;

        dfs(i,n,rad);
        int mt=c;
            for(int o=1;o<=n;o++)
                if(mat[ndfin][o])
         {
             ndfin=o;
             break;
         }
        // cout<<ndfin<<" "<<c<<" ";

         if(ndfin!=i){
            costuri[++c][i]=ndfin;
   mt=c;
        for(int k=1;k<=4;k++)
        {

              costuri[++mt][i]=costuri[k][ndfin];
        }
         }
    }



    }
    cout<<"\n\n\n\n\n";

    cout<<"\n\n\n\n\n";
    for(int i=1;i<=0;i++)
    {

        for(int j=1;j<=n;j++)
        {
            cout<<costuri[i][j]<<"  ";

        }
        cout<<"\n";
    }
 for(int i=1;i<=p;i++)
    {
        int x,k;
      f>>x>>k;
      g<<costuri[k][x]<<"  \n";
    }
    cout << "Hello world!" << endl;
    return 0;
}