Pagini recente » Cod sursa (job #275400) | Cod sursa (job #1016685) | Cod sursa (job #2071167) | Cod sursa (job #2059224) | Cod sursa (job #744052)
Cod sursa(job #744052)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("cartoane.in");
ofstream out("cartoane.out");
int l,h,a,b;
int tab[155][155];
void init ()
{
for(int i=0;i<155;i++)
for(int j=0;j<155;j++)
tab[i][j]=-1;
}
int maxi2(int x,int y)
{
if(x>y)
return x;
return y;
}
int maxi4(int u,int d,int t,int p)
{
return maxi2(maxi2(u,d),maxi2(t,p));
}
int taie(int x, int y)
{
if(tab[x][y]!=-1)
return tab[x][y];
int unu,doi,trei,patru;
unu=doi=trei=patru=0;
if((x>=a)&&(y>=b))
{
unu=1+taie(x-a,y)+taie(a,y-b);
doi=1+taie(x,y-b)+taie(x-a,b);
}
if((x>=b)&&(y>=a))
{
trei=1+taie(x-b,y)+taie(b,y-a);
patru=1+taie(x,y-a)+taie(x-b,a);
}
tab[x][y]=maxi4(unu,doi,trei,patru);
return tab[x][y];
}
void afis ()
{
out<<"\n----------------\n\n";
for(int i=0;i<150;i++)
out<<i<<"\t";
out<<"\n";
for(int i=0;i<150;i++)
out<<"-\t";
for(int i=0;i<150;i++)
{
for(int j=0;j<150;j++)
out<<tab[i][j]<<"\t";
out<<"\n";
}
}
int main()
{
in>>l>>h>>a>>b;
init();
out<<taie(l,h);
//afis();
return 0;
}