Cod sursa(job #2165301)

Utilizator malina2109Malina Diaconescu malina2109 Data 13 martie 2018 11:46:44
Problema Taramul Nicaieri Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#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";
    }
}