Pagini recente » Cod sursa (job #2259966) | Cod sursa (job #2904649) | Cod sursa (job #2108803) | Cod sursa (job #2108809) | Cod sursa (job #2172920)
#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];
ofstream g("obiective.out");
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();
if(z==y)
{
cout<<d[y]<<endl;
return;
}
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);
}
}
q.pop();
}
g<<d[y]<<endl;
}
int main()
{
int i,j,x,y;
ifstream f("obiective.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);
}
f>>t;
for(i=1;i<=t;i++)
{
f>>x>>y;
parc(x,y);
}
return 0;
}