Pagini recente » Cod sursa (job #1399781) | Cod sursa (job #1677458) | Cod sursa (job #2555290) | Cod sursa (job #2771338) | Cod sursa (job #2221437)
#include<fstream>
#include<iostream>
#include<algorithm>
#define x first
#define y second
#define DN 105
using namespace std;
ifstream fin("lapte.in");
ofstream fout("lapte.out");
int n,l,nr1,nr2,t;
int b[DN];
pair<int,int>r[DN];
typedef pair<pair<int,int>,int >pii;
pii a[DN];
int cmp(pii A,pii B)
{
return (A.x.y/A.x.x>B.x.y/B.x.x||(A.x.y/A.x.x==B.x.y/B.x.x&&b[A.y]>b[B.y]));
}
int main()
{
fin>>n>>l;
for(int i=1;i<=n;i++)
{
fin>>a[i].x.x>>a[i].x.y;
a[i].y=i;
}
for(int h=1;h<=100;h++)
{
nr1=nr2=0;
for(int i=1;i<=n;i++)
{
r[a[i].y].y=h/a[i].x.y;
b[a[i].y]=h%a[i].x.y;
nr2+=r[a[i].y].y;
}
sort(a+1,a+n+1,cmp);
if(nr2<l)
continue;
for(int i=1;i<=n;i++)
{
t=min(nr2-l,r[a[i].y].y);
nr2-=t;
r[a[i].y].y-=t;
t=b[a[i].y]+t*a[i].x.y;
r[a[i].y].x=t/a[i].x.x;
nr1+=r[a[i].y].x;
t=t%a[i].x.x;
r[a[i].y].y+=t/a[i].x.y;
nr2+=t/a[i].x.y;
}
if(nr1>=l)
{
fout<<h<<'\n';
for(int i=1;i<=n;i++)
fout<<r[i].x<<' '<<r[i].y<<'\n';
return 0;
}
}
}