Pagini recente » Cod sursa (job #1540432) | Cod sursa (job #1275696) | Cod sursa (job #1084983) | Cod sursa (job #2714301) | Cod sursa (job #1384397)
#include <iostream>
#include <fstream>
#include<vector>
using namespace std;
ifstream f("stramosi.in");
ofstream g("stramosi.out");
vector<unsigned short>mat[250000];
vector<unsigned short>cost[250000];
char vis[250000]={};
int ndfin;
int c=0;
int rad;
void dfs(int nod)
{
ndfin=nod;
vis[nod]=1;
if(mat[nod].size()>0)
{
if(vis[mat[nod][0]]==0)
{
cost[rad].push_back(mat[nod][0]);
dfs(mat[nod][0]);
}
}
}
int main()
{
int n,p;
f>>n>>p;
for(int i=1;i<=n;i++)
{
int x;
f>>x;
mat[i].push_back(x);
}
for(int i=1;i<=n;i++){
if(vis[i]==0)
{
c=0;
vis[i]=1;
rad=i;
dfs(i);
if(mat[i].size()>0)
{
ndfin=mat[i][0];
}
if(ndfin!=i){
cost[i].push_back(ndfin);
for(int k=0;k<cost[ndfin].size();k++)
{
cost[i].push_back(cost[ndfin][k]);
}
}
}
}
cout<<"\n\n\n\n\n";
cout<<cost[5][1]<<" ";
cout<<"\n\n\n\n\n";
for(int i=0;i<=0;i++)
{
for(int j=0;j<cost[i].size();j++)
{
cout<<cost[i][j]<<" ";
}
cout<<"\n";
}
for(int i=1;i<=p;i++)
{
int x,k;
f>>x>>k;
if(k>=cost[x].size())
g<<0<<"\n";
else
g<<cost[x][k-1]<<" \n";
}
cout << "Hello world!" << endl;
return 0;
}