Pagini recente » Cod sursa (job #896511) | Cod sursa (job #2982951) | Cod sursa (job #3255400) | Cod sursa (job #3169861) | Cod sursa (job #3004001)
#include <fstream>
using namespace std;
ifstream f("triunghi.in");
ofstream g("triunghi.out");
int n , s , suma , a[25][25] , nr;
bool ok = false;
void afis()
{
for(int i = 1 ; i <= n ; i++ , g << '\n')
for (int j = 1 ; j <= i ; j++)
g << a[i][j] << " ";
nr++;
}
void verif(int k)
{
for ( int i = 1 ; i <= k ; i++)
{
a[k - 1][i] = a[k][i] + a[k][i + 1];
suma = suma + a[k][i];
}
if(suma == s && k == 1)
{
afis();
ok = true;
}
if(suma < s && k > 1)
{
verif(k - 1);
}
}
void bkt(int k)
{
for ( int i = 1 ; i <= s / n && ok == false; i++)
{
a[n][k] = i;
if(k == n)
{
suma = 0;
verif(n);
if(suma > s)
break;
}
else
bkt(k + 1);
}
}
int main()
{
f >> n >> s;
bkt(1);
if(nr == 0)
g << "imposibil";
return 0;
}