Cod sursa(job #2381984)

Utilizator liviu2000Dragomirescu Liviu liviu2000 Data 17 martie 2019 15:18:19
Problema Pavare2 Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>
#define N 105

using namespace std;

ifstream fin("pavare2.in") ;
ofstream fout("pavare2.out") ;

long long dp[N][N][5] ;
vector<int> sl;

int main()
{
    int n , a , b , k , i , j ;
    long long sol = 0 ;
    fin >> n >> a >> b ;
    fin >> k ;
    dp[1][1][0] = 1 ;
    dp[1][1][1] = 1 ;
    for ( i = 2 ; i <= n ; i++ )
    {
        for ( j = 2 ; j <= a ; j++ )
            dp[i][j][0] = dp[i-1][j-1][0] ;
        for ( j = 2 ; j <= b ; j++ )
            dp[i][j][1] = dp[i-1][j-1][1] ;
        for ( j = 1 ; j <= a ; j++ )
            dp[i][1][1] = dp[i][1][1] + dp[i-1][j][0] ;
        for ( j = 1 ; j <= b ; j++ )
            dp[i][1][0] = dp[i][1][0] + dp[i-1][j][1] ;
    }
    for ( j = 1 ; j <= max(a,b) ; j++ )
        sol = sol + dp[n][j][0] + dp[n][j][1] ;
    fout << sol << '\n' ;
    for ( i = 1 ; i <= n/a ; i++ )
    {
        for ( j = 1 ; j <= a ; j++ )
            sl.push_back(0) ;
        sl.push_back(1) ;
    }
    for ( i = 0 ; i < n ; i++ )
        fout << sl[i] ;
}