Pagini recente » Cod sursa (job #1184469) | Cod sursa (job #1254512) | Cod sursa (job #556672) | Cod sursa (job #1567358) | Cod sursa (job #381944)
Cod sursa(job #381944)
#include <stdio.h>
FILE *f=fopen("lapte.in", "r"), *g=fopen("lapte.out", "w");
int i, j, n, inj, a[101], b[101], poza[101], pozb[101], sw, ld, ls, l, s, mij;
bool check[101];
void citeste(void)
{
fscanf(f, "%d%d", &n, &l);
for (i=1;i<=n;i++)
fscanf(f, "%d%d", &a[i], &b[i]);
fclose(f);
}
void sorteaza(void)
{
for (i=1;i<=n;i++)
poza[i]=pozb[i]=i;
inj=n;
while(inj>1)
{
inj/=2;
do{
sw=0;
for( i=1;i<=n-inj;i++)
if(a[i]>a[i+inj])
{
a1[i]=a1[i]^a1[i+inj];
a1[i+inj]=a1[i]^a1[i+inj];
a1[i]=a1[i]^a1[i+inj];
b1[i]=b1[i]^b1[i+inj];
b1[i+inj]=b1[i]^b1[i+inj];
b1[i]=b1[i]^b1[i+inj];
sw++;
}
}while(sw!=0);
}
sw=0;
inj=n;
while(inj>1)
{
inj/=2;
do{
sw=0;
for( i=1;i<=n-inj;i++)
if(b[i]>b[i+inj])
{
a2[i]=a2[i]^a2[i+inj];
a2[i+inj]=a2[i]^a2[i+inj];
a2[i]=a2[i]^a2[i+inj];
b2[i]=b2[i]^b2[i+inj];
b2[i+inj]=b2[i]^b2[i+inj];
b2[i]=b2[i]^b2[i+inj];
sw++;
}
}while(sw!=0);
}
}
int verif(void)
{
int ii = 1;
s = 0;
while (s<l)
{
s+=mij/a[ii];
ii++;
}
s = 0;
ii = 1;
while (s<l)
{
s+=mij/b[ii];
ii++;
}
}
void tipareste(int i)
{
i++;
}
void binary(void)
{
ls=1;
ld=100;
mij=(ls+ld)/2;
while (ls<ld)
{
if (verif())
{
ls=mij+1;
check[mij]=1;
}
else
ld=mij-1;
}
for (i=1;i<=n;i++)
if (check[i])
tipareste(i);
}
int main(void)
{
citeste();
sorteaza();
binary();
return 0;
}