Cod sursa(job #2153302)

Utilizator GeorgeCalinPetruta George-Calin GeorgeCalin Data 6 martie 2018 09:29:26
Problema Taramul Nicaieri Scor 5
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include <fstream>
#define nmax 102
using namespace std;
ifstream fin("harta.in");
ofstream fout("harta.out");

int po1[nmax],po2[nmax],a[nmax][nmax];

int main()
{
    int n,s=0;
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>po1[i]>>po2[i];
        s+=po1[i];
    }
    fout<<s<<"\n";
    for(int i=1;i<=n;i++)
    {
        if(po1[i])
        {
            for(int j=1;po1[i]&&j<=n;j++)
            {
                if(j==i)
                    continue;
                if(po2[j]&&!a[i][j])
                {
                    a[i][j]=1;
                    fout<<i<<" "<<j<<"\n";
                    po2[j]--;
                    po1[i]--;
                }
            }
        }
        if(po2[i])
        {
            for(int j=n;po2[i]&&j;j--)
            {
                if(j==i)
                    continue;
                if(po1[j]&&!a[j][i])
                {
                    a[j][i]=1;
                    fout<<j<<" "<<i<<"\n";
                    po1[j]--;
                    po2[i]--;
                }
            }
        }
    }
    return 0;
}