Pagini recente » Cod sursa (job #1741221) | Cod sursa (job #361099) | Cod sursa (job #573936) | Cod sursa (job #2261148) | Cod sursa (job #2165301)
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
using namespace std;
ifstream f("harta.in");
ofstream g("harta.out");
int *intra,*iese,n,nr;
vector<int> graf[101];
int main()
{
queue<int> c;
f>>n;intra=new int[n+1];iese=new int[n+1];
for(int i=1;i<=n;i++)
{
f>>iese[i]>>intra[i];
if(iese[i]==intra[i]) c.push(i);
}
while(!c.empty())
{
int var=c.front();c.pop();
for(int i=1;i<=n&&iese[var];i++)
if(i!=var)
if(intra[i])
{
intra[i]--;
iese[var]--;
graf[var].push_back(i);nr++;
c.push(i);
}
}
g<<nr<<"\n";
for(int i=1;i<=n;i++)
{
for(int j=0;j<graf[i].size();j++)
g<<i<<" "<<graf[i][j]<<"\n";
}
}