#include <stdio.h>
int x;
//--------
const int a_data[7][2] = {
{9, 15},
{12, 16},
{16, 13},
{18, 13},
{31, 11},
{32, 1},
{36, 9} };
#define PILES_LIMIT 10
#define ROWS_LIMIT 10//(STONES)
#define NUMBER_OF_STONES 7
#define NUMBER_OF_PILES 3
int flg_finished;
int lvl;
int piles_cnt[PILES_LIMIT];
int price_pile[PILES_LIMIT];
int l;
int total_pile_price[100];//da se uvelichat spored broq kamuni
int kk;
int min_price = 9999;// da se uvelichato spored broq kamuni
int pile_position[PILES_LIMIT];
void manamana(int number_stones,int number_piles)
{
while(flg_finished==0)
{
// add the next price to the current pile
if(lvl != 0){price_pile[lvl] += a_data[piles_cnt[lvl]][1]*(a_data[piles_cnt[lvl]][0]-a_data[piles_cnt[lvl-1]][0]);}
else {price_pile[lvl] += a_data[piles_cnt[lvl]][1]*(a_data[piles_cnt[lvl]][0]-a_data[0][0]);}
if(piles_cnt[lvl] < (number_stones - number_piles + lvl + 1) )//if this is not the current level maximum
{
piles_cnt[lvl]++;//increase the current level cnt
if(lvl < number_piles - 1)//if this is not the max level go to the next level
{
lvl++;
piles_cnt[lvl] = piles_cnt[lvl-1];//the next level cnt starts from this level cnt
}
else//stay at this level
{
if(piles_cnt[lvl] == (number_stones - number_piles + lvl + 1) )//if this is the last max calculate total price
{
for(l=0;l<NUMBER_OF_PILES;l++){total_pile_price[kk] += price_pile[l];}//get the total price
x = total_pile_price[kk];
if(min_price > total_pile_price[kk])
{
min_price = total_pile_price[kk];
for(l=0;l<NUMBER_OF_PILES;l++)
{
pile_position[l+1] = piles_cnt[l]+1;
}
pile_position[0] = 1;
}
kk++;
}
}
}
else//if the current level maximum is reached go one level below
{
if(lvl != 0)
{
price_pile[lvl] = 0;//clearing the current level price
lvl--;// go one level bellow
}
else {flg_finished = 1;}
}
}
lvl = 9000;
}
int main(void) {
manamana(NUMBER_OF_STONES,NUMBER_OF_PILES);
for(l=0;l<NUMBER_OF_PILES;l++)
{
printf("%d\n", pile_position
[l
] ); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKCWludCB4OwoKLy8tLS0tLS0tLQpjb25zdCBpbnQgYV9kYXRhWzddWzJdID0gewp7OSwgMTV9LAp7MTIsIDE2fSwKezE2LCAxM30sCnsxOCwgMTN9LAp7MzEsIDExfSwKezMyLCAxfSwKezM2LCA5fSB9OwoKI2RlZmluZSBQSUxFU19MSU1JVCAxMAojZGVmaW5lIFJPV1NfTElNSVQgMTAvLyhTVE9ORVMpCiNkZWZpbmUgTlVNQkVSX09GX1NUT05FUyA3CiNkZWZpbmUgTlVNQkVSX09GX1BJTEVTIDMKCgppbnQgZmxnX2ZpbmlzaGVkOwppbnQgbHZsOwppbnQgcGlsZXNfY250W1BJTEVTX0xJTUlUXTsKaW50IHByaWNlX3BpbGVbUElMRVNfTElNSVRdOwppbnQgbDsKaW50IHRvdGFsX3BpbGVfcHJpY2VbMTAwXTsvL2RhIHNlIHV2ZWxpY2hhdCBzcG9yZWQgYnJvcSBrYW11bmkKaW50IGtrOwppbnQgbWluX3ByaWNlID0gOTk5OTsvLyBkYSBzZSB1dmVsaWNoYXRvIHNwb3JlZCBicm9xIGthbXVuaQppbnQgcGlsZV9wb3NpdGlvbltQSUxFU19MSU1JVF07Cgp2b2lkIG1hbmFtYW5hKGludCBudW1iZXJfc3RvbmVzLGludCAgbnVtYmVyX3BpbGVzKQp7CgoJd2hpbGUoZmxnX2ZpbmlzaGVkPT0wKQoJewoJCS8vIGFkZCB0aGUgbmV4dCBwcmljZSB0byB0aGUgY3VycmVudCBwaWxlCgkJaWYobHZsICE9IDApe3ByaWNlX3BpbGVbbHZsXSArPSBhX2RhdGFbcGlsZXNfY250W2x2bF1dWzFdKihhX2RhdGFbcGlsZXNfY250W2x2bF1dWzBdLWFfZGF0YVtwaWxlc19jbnRbbHZsLTFdXVswXSk7fQoJCWVsc2UJCXtwcmljZV9waWxlW2x2bF0gKz0gYV9kYXRhW3BpbGVzX2NudFtsdmxdXVsxXSooYV9kYXRhW3BpbGVzX2NudFtsdmxdXVswXS1hX2RhdGFbMF1bMF0pO30KCgkJCQoKCQlpZihwaWxlc19jbnRbbHZsXSA8IChudW1iZXJfc3RvbmVzIC0gbnVtYmVyX3BpbGVzICsgbHZsICsgMSkgKS8vaWYgdGhpcyBpcyBub3QgdGhlICBjdXJyZW50IGxldmVsIG1heGltdW0KCQl7CgkJCXBpbGVzX2NudFtsdmxdKys7Ly9pbmNyZWFzZSB0aGUgY3VycmVudCBsZXZlbCBjbnQKCQkJaWYobHZsIDwgbnVtYmVyX3BpbGVzIC0gMSkvL2lmIHRoaXMgaXMgbm90IHRoZSBtYXggbGV2ZWwgZ28gdG8gdGhlIG5leHQgbGV2ZWwKCQkJewoJCQkJbHZsKys7CgkJCQlwaWxlc19jbnRbbHZsXSA9IHBpbGVzX2NudFtsdmwtMV07Ly90aGUgbmV4dCBsZXZlbCBjbnQgc3RhcnRzIGZyb20gdGhpcyBsZXZlbCBjbnQgCgkJCX0KCQkJZWxzZS8vc3RheSBhdCB0aGlzIGxldmVsCgkJCXsKCQkJCWlmKHBpbGVzX2NudFtsdmxdID09IChudW1iZXJfc3RvbmVzIC0gbnVtYmVyX3BpbGVzICsgbHZsICsgMSkgKS8vaWYgdGhpcyBpcyB0aGUgbGFzdCBtYXggY2FsY3VsYXRlIHRvdGFsIHByaWNlCgkJCQl7CgkJCQkJZm9yKGw9MDtsPE5VTUJFUl9PRl9QSUxFUztsKyspe3RvdGFsX3BpbGVfcHJpY2Vba2tdICs9IHByaWNlX3BpbGVbbF07fS8vZ2V0IHRoZSB0b3RhbCBwcmljZQoJCQkJCQl4ICA9IHRvdGFsX3BpbGVfcHJpY2Vba2tdOwoJCQkJCQlwcmludGYoIiVkXG4iLCB4KTsKCQkJCQlpZihtaW5fcHJpY2UgPiB0b3RhbF9waWxlX3ByaWNlW2trXSkKCQkJCQl7CgkJCQkJCW1pbl9wcmljZSA9IHRvdGFsX3BpbGVfcHJpY2Vba2tdOwoJCQkJCQlmb3IobD0wO2w8TlVNQkVSX09GX1BJTEVTO2wrKykKCQkJCQkJewoJCQkJCQkJcGlsZV9wb3NpdGlvbltsKzFdID0gcGlsZXNfY250W2xdKzE7CgkJCQkJCX0KCQkJCQkJcGlsZV9wb3NpdGlvblswXSA9IDE7CgkJCQkJfQoJCQkJCQoJCQkJCWtrKys7CgkJCQl9CgkJCQkgCgkJCX0KCQl9CgkJZWxzZS8vaWYgdGhlIGN1cnJlbnQgbGV2ZWwgbWF4aW11bSBpcyByZWFjaGVkIGdvIG9uZSBsZXZlbCBiZWxvdwoJCXsKCQkJaWYobHZsICE9IDApCgkJCXsKCQkJCXByaWNlX3BpbGVbbHZsXSA9IDA7Ly9jbGVhcmluZyB0aGUgY3VycmVudCBsZXZlbCBwcmljZQoJCQkJbHZsLS07Ly8gZ28gb25lIGxldmVsIGJlbGxvdwoJCQl9CgkJCWVsc2Uge2ZsZ19maW5pc2hlZCA9IDE7fQoJCX0KCgl9Cmx2bCA9IDkwMDA7Cn0KCmludCBtYWluKHZvaWQpIHsgCgptYW5hbWFuYShOVU1CRVJfT0ZfU1RPTkVTLE5VTUJFUl9PRl9QSUxFUyk7CgpwcmludGYoIm1pbl9wcmljZToiKTsKcHJpbnRmKCIlZFxuIiwgbWluX3ByaWNlKTsKCmZvcihsPTA7bDxOVU1CRVJfT0ZfUElMRVM7bCsrKQp7CglwcmludGYoIiVkXG4iLCBwaWxlX3Bvc2l0aW9uW2xdICk7Cn0KCXJldHVybiAwOwp9Cgo=