Cod sursa(job #830461)

Utilizator valentina506Moraru Valentina valentina506 Data 6 decembrie 2012 21:43:28
Problema Taramul Nicaieri Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<fstream>
#include<algorithm>
using namespace std;
struct nod
{
    int vo,vi;
};
nod a[101];
int n,m,i,j,x,y,mi[101],mo[101],nr;
bool b[101][101],c[101][101];
/*int cmp(int x, int y)
{
    if(a[x].vi==a[y].vi)
       return x>y;
    return a[x].vi>a[y].vi;
}*/
int cmp(int x, int y)
{
    if(a[x].vi==a[y].vi)
       return a[x].vo>a[y].vo;
    return a[x].vi>a[y].vi;
}
int cmp1(int x, int y)
{
    if(a[x].vo==a[y].vo)
       return x<y;
    return a[x].vo>a[y].vo;
}
int main()
{
 
    ifstream f("harta.in");
    ofstream g("harta.out");
    f>>n;
    nr=n;
    for(i=1;i<=n;++i)
    {
        mi[i]=mo[i]=i;
        f>>a[i].vo>>a[i].vi;
        m+=a[i].vo;
    }
    sort(mi+1,mi+n+1,cmp);
    sort(mo+1,mo+n+1,cmp1);
    g<<m<<"\n";
    for(i=1;i<=n;++i)
    {
        j=1;
        nr=0;
        while(a[mo[i]].vo)
        {
            if(mo[i]!=mi[j])
            {
            g<<mo[i]<<" "<<mi[j]<<"\n";
            a[mi[j]].vi--;
            a[mo[i]].vo--;
            }
            j++;
        }
        sort(mi+1,mi+n+1,cmp);
 
 
    }
 
}