#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
template<class T>
class Array
{
private:
vector<T> arr;
public:
Array(int size) : arr(size) {}
void random()
{
for (int i = 0; i < arr.size(); i++)
{
T randomNumber = -5 + (rand() % ((100 - 1) * 1 + 1)) / T(10);
arr[i] = randomNumber;
}
}
void print() { for (int i = 0; i < arr.size(); i++) cout << arr[i] << " "; cout << endl; }
T diff()
{
auto first_negative = find_if(arr.begin(), arr.end(), [](const T& var){ return var < 0; });
if (first_negative == arr.end())
return 0;
int counter = 0;
auto second_positive = find_if(arr.begin(), arr.end(), [&counter](const T& var){
if (var > 0)
counter++;
if (counter == 2)
return true;
else return false;
});
if (second_positive == arr.end())
return 0;
return *first_negative - *second_positive;
}
};
int main()
{
Array<double> ar(10);
ar.random();
ar.print();
cout << ar.diff() << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgp0ZW1wbGF0ZTxjbGFzcyBUPgpjbGFzcyBBcnJheQp7CnByaXZhdGU6CiAgdmVjdG9yPFQ+IGFycjsKcHVibGljOgogIEFycmF5KGludCBzaXplKSA6IGFycihzaXplKSB7fQoKICB2b2lkIHJhbmRvbSgpCiAgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnIuc2l6ZSgpOyBpKyspCiAgICB7CiAgICAgIFQgcmFuZG9tTnVtYmVyID0gLTUgKyAocmFuZCgpICUgKCgxMDAgLSAxKSAqIDEgKyAxKSkgLyBUKDEwKTsKICAgICAgYXJyW2ldID0gcmFuZG9tTnVtYmVyOwogICAgfQogIH0KCiAgdm9pZCBwcmludCgpIHsgZm9yIChpbnQgaSA9IDA7IGkgPCBhcnIuc2l6ZSgpOyBpKyspIGNvdXQgPDwgYXJyW2ldIDw8ICIgIjsgY291dCA8PCBlbmRsOyB9CgogIFQgZGlmZigpCiAgewogICAgYXV0byBmaXJzdF9uZWdhdGl2ZSA9IGZpbmRfaWYoYXJyLmJlZ2luKCksIGFyci5lbmQoKSwgW10oY29uc3QgVCYgdmFyKXsgcmV0dXJuIHZhciA8IDA7IH0pOwogICAgaWYgKGZpcnN0X25lZ2F0aXZlID09IGFyci5lbmQoKSkKICAgICAgcmV0dXJuIDA7CgogICAgaW50IGNvdW50ZXIgPSAwOwogICAgYXV0byBzZWNvbmRfcG9zaXRpdmUgPSBmaW5kX2lmKGFyci5iZWdpbigpLCBhcnIuZW5kKCksIFsmY291bnRlcl0oY29uc3QgVCYgdmFyKXsKICAgICAgaWYgKHZhciA+IDApCiAgICAgICAgY291bnRlcisrOwogICAgICBpZiAoY291bnRlciA9PSAyKQogICAgICAgIHJldHVybiB0cnVlOwogICAgICBlbHNlIHJldHVybiBmYWxzZTsKICAgIH0pOwoKICAgIGlmIChzZWNvbmRfcG9zaXRpdmUgPT0gYXJyLmVuZCgpKQogICAgICByZXR1cm4gMDsKCiAgICByZXR1cm4gKmZpcnN0X25lZ2F0aXZlIC0gKnNlY29uZF9wb3NpdGl2ZTsKICB9Cn07CgoKaW50IG1haW4oKQp7CiAgQXJyYXk8ZG91YmxlPiBhcigxMCk7CiAgYXIucmFuZG9tKCk7CiAgYXIucHJpbnQoKTsKICBjb3V0IDw8IGFyLmRpZmYoKSA8PCBlbmRsOwogIHJldHVybiAwOwp9