#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int* a = new int[31];
*(a + 1) = 1; *(a + 2) = 1;
for (int i = 3; i <= 30; ++i) {
*(a + i) = *(a + i - 1) + *(a + i - 2);
}
for (int i = 3; i <= 30; ++i) {
if (i % 4 == 0) {
*(a + i) = -*(a + i);
}
}
int maxPos = -1, maxNeg = -2000000000;
int pr = 1;
vector<int> pos_numbers;
for (int i = 1; i <= 30; ++i) {
cout << *(a + i) << ' ';
pr *= *(a + i);
if (a[i] < 0) {
maxNeg = max(maxNeg, *(a + i));
} else {
maxPos = max(maxPos, *(a + i));
pos_numbers.push_back(*(a + i));
}
} cout << endl;
cout << maxPos << ' ' << maxNeg << endl;
cout << pr << endl;
sort(pos_numbers.begin(), pos_numbers.end());
reverse(pos_numbers.begin(), pos_numbers.end());
for (int i = 0; i < pos_numbers.size(); ++i) {
cout << pos_numbers[i] << ' ';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiAKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAppbnQgbWFpbigpCnsKICAgIGludCogYSA9IG5ldyBpbnRbMzFdOwogICAgKihhICsgMSkgPSAxOyAqKGEgKyAyKSA9IDE7CiAgICBmb3IgKGludCBpID0gMzsgaSA8PSAzMDsgKytpKSB7CiAgICAgICAgKihhICsgaSkgPSAqKGEgKyBpIC0gMSkgKyAqKGEgKyBpIC0gMik7CiAgICB9CiAgICBmb3IgKGludCBpID0gMzsgaSA8PSAzMDsgKytpKSB7CiAgICAgICAgaWYgKGkgJSA0ID09IDApIHsKICAgICAgICAgICAgKihhICsgaSkgPSAtKihhICsgaSk7CiAgICAgICAgfQogICAgfQogICAgaW50IG1heFBvcyA9IC0xLCBtYXhOZWcgPSAtMjAwMDAwMDAwMDsKICAgIGludCBwciA9IDE7CiAgICB2ZWN0b3I8aW50PiBwb3NfbnVtYmVyczsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IDMwOyArK2kpIHsKICAgICAgICBjb3V0IDw8ICooYSArIGkpIDw8ICcgJzsKICAgICAgICBwciAqPSAqKGEgKyBpKTsKICAgICAgICBpZiAoYVtpXSA8IDApIHsKICAgICAgICAgICAgbWF4TmVnID0gbWF4KG1heE5lZywgKihhICsgaSkpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG1heFBvcyA9IG1heChtYXhQb3MsICooYSArIGkpKTsKICAgICAgICAgICAgcG9zX251bWJlcnMucHVzaF9iYWNrKCooYSArIGkpKTsKICAgICAgICB9CiAgICB9IGNvdXQgPDwgZW5kbDsKICAgIGNvdXQgPDwgbWF4UG9zIDw8ICcgJyA8PCBtYXhOZWcgPDwgZW5kbDsKICAgIGNvdXQgPDwgcHIgPDwgZW5kbDsKICAgIHNvcnQocG9zX251bWJlcnMuYmVnaW4oKSwgcG9zX251bWJlcnMuZW5kKCkpOwogICAgcmV2ZXJzZShwb3NfbnVtYmVycy5iZWdpbigpLCBwb3NfbnVtYmVycy5lbmQoKSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHBvc19udW1iZXJzLnNpemUoKTsgKytpKSB7CiAgICAgICAgY291dCA8PCBwb3NfbnVtYmVyc1tpXSA8PCAnICc7CiAgICB9CiAKICAgIHJldHVybiAwOwp9