Cod sursa(job #2165354)

Utilizator malina2109Malina Diaconescu malina2109 Data 13 martie 2018 11:55:47
Problema Taramul Nicaieri Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <fstream>
#include <queue>
#include <vector>
#include <algorithm>
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];
        nr+=iese[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)
            {
                vector<int>::iterator p;p=find(graf[var].begin(),graf[var].end(),i);
                if(intra[i]&& p == graf[var].end())
                {
                    intra[i]--;
                    iese[var]--;
                    graf[var].push_back(i);
                    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";
    }
}