Pagini recente » Cod sursa (job #3174664) | Cod sursa (job #2092289) | Cod sursa (job #731291) | Cod sursa (job #690047) | Cod sursa (job #1383890)
#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;
}