Cod sursa(job #661517)

Utilizator edmond_ciorbaCiorba Edmond edmond_ciorba Data 14 ianuarie 2012 16:58:37
Problema Stramosi Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int ose(int e,int o,int &k,int p,int x[250000])
{
    if (k==p)
    {
        return o;
    }
    else if (o==0)
    {
        k=p;
        return o;
    }
    else
    {
        ++k;
        return ose(o,x[o],k,p,x);
    }
}

int main()
{
    string in,out;
        in="stramosi.in";
        out="stramosi.out";
    ifstream f;
    ofstream g;
        f.open(in.c_str());
        g.open(out.c_str());

    int n,m,i,q,p,e,o,k;
    int x[250000];

    f >> n;
    f >> m;
    x[0]=0;
    for (i=1; i<=n; ++i)
    {
        f >> x[i];
    }
    for (i=1; i<=m; ++i)
    {
        f >> q;
        f >> p;
        e=q;
        o=x[q];
        k=1;
        g << ose(e,o,k,p,x) << endl;
        /*for (j=1; j<=p-1; ++j)
        {
            e=o;
            o=x[e];
            if (o==0)
            {
                break;
            }
        }*/
    }

    f.close();
    g.close();
    return 0;
}