Cod sursa(job #2246107)

Utilizator iulius510iulius alexandru iulius510 Data 26 septembrie 2018 18:03:01
Problema Stramosi Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
int N,M;
int v[250001],varf,x,y,u[250001],k,a[2500][2500];
vector<int>la[250001];

void p(int x)
{
        for(int i=0;i<la[x].size();i++)
            if(v[la[x][i]]==0)
        {
            v[la[x][i]]=1;
             for(int j=1;(j<la[x][i])&&(a[x][j]!=0);j++)
                a[la[x][i]][j+1]=a[x][j];
             p(la[x][i]);
        }
}

int main()
{   f>>N>>M;
    for(int i=1;i<=N;i++)
    {
        f>>a[i][1];
        if(a[i][1]!=0)
        {
            la[a[i][1]].push_back(i);
        }
        else
        u[++k]=i;
    }
    for(int i=1;i<=k;i++)
    p(u[i]);
    for(int i=1;i<=M;i++)
    {
        f>>x>>y;
        g<<a[x][y]<<"\n";
    }
    return 0;
}