Cod sursa(job #1444584)

Utilizator priestnoobFMI - Dan Nema priestnoob Data 29 mai 2015 23:03:57
Problema Taramul Nicaieri Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.77 kb
#include<fstream>

using namespace std;

ifstream f("harta.in");
ofstream g("harta.out");

#define nmax 111

int n,in[nmax],cnt,out[nmax],mat[nmax][nmax],nr[nmax];
int a1,a2;

int main()
{
    f>>n;
    for(int i=1;i<=n;++i)
    {
        f>>out[i]>>in[i];
        cnt+=in[i];
    }
    g<<cnt<<'\n';
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=n;++j) nr[j]=0;
        for(int j=1;j<=n;++j)
            if(i!=j&&in[j])
            mat[in[j]][++nr[in[j]]]=j;
        for(int j=n;j>0;--j)
        {
            a1=nr[j];
            while(out[i]&&a1)
            {
                a2=mat[j][a1];
                a1--;
                out[i]--;
                in[a2]--;
                g<<i<<' '<<a2<<'\n';
            }
        }
    }
}