Cod sursa(job #2128448)

Utilizator ZanoxNonea Victor Zanox Data 11 februarie 2018 18:50:06
Problema Lapte Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <fstream>
#include <iostream>
#include <algorithm>

using namespace std;

struct triplet
{
    int x,y,i;
    float r;
}v[100];

int n,l,a[100],b[100],i,j,t,ta,tb;

int comp(triplet a,triplet b)
{
    if(a.r<=b.r) return 1;
    return 0;
}

int main()
{
    fstream f("lapte.in",ios::in),g("lapte.out",ios::out);
    f>>n>>l;
    for(i=0;i<n;i++)
    {
        f>>v[i].x>>v[i].y;
        v[i].i=i;
        v[i].r=v[i].x/v[i].y;
    }
    sort(v,v+n,comp);
    for(t=1;1;t++)
        for(i=0;i<n;i++)
        {
            ta=0;tb=0;
            for(j=0;j<i;j++)
            {
                a[v[j].i]=t/v[j].x;
                ta+=t/v[j].x;
                b[v[j].i]=t%v[j].x/v[j].y;
                tb+=t%v[j].x/v[j].y;
            }
            for(j=i+1;j<n;j++)
            {
                b[v[j].i]=t/v[j].y;
                tb+=t/v[j].y;
                a[v[j].i]=t%v[j].y/v[j].x;
                ta+=t%v[j].y/v[j].x;
            }
            if((l-ta)*(l>ta)*v[i].x+(l-tb)*(l>tb)*v[i].y>t)continue;
            a[v[i].i]=l-ta;
            b[v[i].i]=l-tb;
            g<<t<<'\n';
            for(j=0;j<n;j++)
                g<<a[j]<<' '<<b[j]<<'\n';
                return 0;
        }
}