Cod sursa(job #2307333)

Utilizator Anakin1001George Giorgiu Gica Anakin1001 Data 24 decembrie 2018 12:36:59
Problema Pavare2 Scor 45
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.33 kb
#include <fstream>

using namespace std;
ifstream f("pavare2.in");
ofstream g("pavare2.out");
int n,A,B,a[101][101],b[101][101],i,j,l,x,k,ok;
int main()
{   f>>n>>A>>B>>k;
    a[0][0]=1;
    b[0][0]=1;
    for(i=1;i<=n;i++){
        for(j=1;j<=A&&j<=i;j++){
            a[i][j]=b[i-j][0];
            a[i][0]+=a[i][j];
        }
        for(j=1;j<=B&&j<=i;j++){
            b[i][j]=a[i-j][0];
            b[i][0]+=b[i][j];
        }
    }
    g<<a[n][0]+b[n][0]<<'\n';;
    x=n;ok=0;
    while(x!=0){
        if(ok==0){
            if(k>a[x][0]){
                k-=a[x][0];
                ok=1;
            }
            else{
                j=x;
                while(a[x][j]<k&&j>1){
                    k-=a[x][j];
                    j--;
                }
                ok=1;
                x=x-j;
                for(l=1;l<=j;l++)
                    g<<0;
            }
        }
        else{
            if(b[x][0]<k){
                k-=b[x][0];
                ok=0;
            }
            else{
                j=1;
                while(b[x][j]<k&&j<n){
                    k-=b[x][j];
                    j++;
                }
                ok=0;
                x=x-j;
                for(l=1;l<=j;l++)
                    g<<1;
            }
        }
    }
    return 0;
}