Pagini recente » Cod sursa (job #2691529) | Cod sursa (job #1561202) | Cod sursa (job #3265867) | Cod sursa (job #2960326) | Cod sursa (job #2172886)
#include <iostream>
#include <vector>
#include <queue>
#include <fstream>
using namespace std;
struct muchie{
int y,c;
}aux;
vector <muchie> v[32000];
queue <int> q;
int n,m,t,d[32000];
void parc(int x,int y)
{
int i,z;
while(!q.empty())q.pop();
for(i=1;i<=n;i++)
d[i]=2000000000;
d[x]=0;
q.push(x);
while(!q.empty())
{
z=q.front();
for(i=0;i<v[z].size();i++)
{
if(d[v[z][i].y]>d[z]+v[z][i].c)
{
d[v[z][i].y]=d[z]+v[z][i].c;
q.push(v[z][i].y);
//cout<<"_________ "<<z<<" "<<v[z][i].y<<" "<<d[i]<<endl;
}
}
q.pop();
}
/* cout<<x<<" "<<y<<endl;
for(i=1;i<=n;i++)
cout<<d[i]<<" ";
cout<<endl;*/
cout<<d[y]<<endl;
}
int main()
{
int i,j,x,y;
ifstream f("date.in");
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
aux.y=y;
aux.c=0;
v[x].push_back(aux);
aux.y=x;
aux.c=1;
v[y].push_back(aux);
}
/*for(i=1;i<=n;i++)
{
for(j=0;j<v[i].size();j++)
cout<<i<<" "<<v[i][j].y<<" "<<v[i][j].c<<" ";
cout<<endl;
}*/
f>>t;
for(i=1;i<=t;i++)
{
f>>x>>y;
parc(x,y);
}
return 0;
}