#include <algorithm>
#include <iostream>
#include <iterator>
#include <random>
#include <vector>
template < typename Generator = std::mt19937, typename Distribution = std::uniform_real_distribution<double>, typename T = double >
struct randGen
{
randGen(const Generator & eng, T low, T high) : m_engine(eng), m_distribution(low, high) {}
T operator()() { return m_distribution(m_engine); }
private:
Generator m_engine;
Distribution m_distribution;
};
int main(){
std::random_device rd;
std::mt19937 engine1(rd());
randGen<std::mt19937, std::uniform_real_distribution<double>, double > myinstance( engine1, 18.3, 180.34 );
std::vector<double> threshold11, threshold21;
for(int i=0; i < 30; i++){
threshold11.push_back(myinstance());
}
for(int i=0; i < 30; i++){
threshold21.push_back(myinstance());
}
std::sort(threshold11.begin(), threshold11.end());
std::sort(threshold21.begin(), threshold21.end());
std::vector<double>::const_iterator it;
for(it=threshold11.begin(); it != threshold11.end(); it++){
std::cout << *it << "\n";
}
std::cout << "\n\n\n";
for(it=threshold21.begin(); it != threshold21.end(); it++){
std::cout << *it << "\n";
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aXRlcmF0b3I+CiNpbmNsdWRlIDxyYW5kb20+CiNpbmNsdWRlIDx2ZWN0b3I+Cgp0ZW1wbGF0ZSA8IHR5cGVuYW1lIEdlbmVyYXRvciA9IHN0ZDo6bXQxOTkzNywgdHlwZW5hbWUgRGlzdHJpYnV0aW9uID0gc3RkOjp1bmlmb3JtX3JlYWxfZGlzdHJpYnV0aW9uPGRvdWJsZT4sIHR5cGVuYW1lIFQgPSBkb3VibGUgPgpzdHJ1Y3QgcmFuZEdlbgp7CiAgICByYW5kR2VuKGNvbnN0IEdlbmVyYXRvciAmIGVuZywgVCBsb3csIFQgaGlnaCkgOiBtX2VuZ2luZShlbmcpLCAgbV9kaXN0cmlidXRpb24obG93LCBoaWdoKSB7fQogICAgVCBvcGVyYXRvcigpKCkgeyByZXR1cm4gbV9kaXN0cmlidXRpb24obV9lbmdpbmUpOyB9CiAKICBwcml2YXRlOgogCiAgICAgICAgR2VuZXJhdG9yIG1fZW5naW5lOwogICAgICAgIERpc3RyaWJ1dGlvbiBtX2Rpc3RyaWJ1dGlvbjsKfTsKIAppbnQgbWFpbigpewogICAgICAgIHN0ZDo6cmFuZG9tX2RldmljZSByZDsKICAgICAgICBzdGQ6Om10MTk5MzcgZW5naW5lMShyZCgpKTsKICAgICAgICByYW5kR2VuPHN0ZDo6bXQxOTkzNywgc3RkOjp1bmlmb3JtX3JlYWxfZGlzdHJpYnV0aW9uPGRvdWJsZT4sIGRvdWJsZSA+IG15aW5zdGFuY2UoIGVuZ2luZTEsIDE4LjMsICAxODAuMzQgKTsKIAogCiAgICAgICAgc3RkOjp2ZWN0b3I8ZG91YmxlPiB0aHJlc2hvbGQxMSwgdGhyZXNob2xkMjE7CiAgICAgICAgZm9yKGludCBpPTA7IGkgPCAzMDsgaSsrKXsKICAgICAgICAgICAgICAgIHRocmVzaG9sZDExLnB1c2hfYmFjayhteWluc3RhbmNlKCkpOwogICAgICAgIH0KICAgICAgICBmb3IoaW50IGk9MDsgaSA8IDMwOyBpKyspewogICAgICAgICAgICAgICAgdGhyZXNob2xkMjEucHVzaF9iYWNrKG15aW5zdGFuY2UoKSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHN0ZDo6c29ydCh0aHJlc2hvbGQxMS5iZWdpbigpLCB0aHJlc2hvbGQxMS5lbmQoKSk7CiAgICAgICAgc3RkOjpzb3J0KHRocmVzaG9sZDIxLmJlZ2luKCksIHRocmVzaG9sZDIxLmVuZCgpKTsKICAgICAgICAKICAgICAgICBzdGQ6OnZlY3Rvcjxkb3VibGU+Ojpjb25zdF9pdGVyYXRvciBpdDsKICAgICAgICAKICAgICAgICBmb3IoaXQ9dGhyZXNob2xkMTEuYmVnaW4oKTsgaXQgIT0gdGhyZXNob2xkMTEuZW5kKCk7IGl0KyspewogICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICppdCA8PCAiXG4iOwogICAgICAgIH0KICAgICAgICBzdGQ6OmNvdXQgPDwgIlxuXG5cbiI7CiAgICAgICAgZm9yKGl0PXRocmVzaG9sZDIxLmJlZ2luKCk7IGl0ICE9IHRocmVzaG9sZDIxLmVuZCgpOyBpdCsrKXsKICAgICAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAqaXQgPDwgIlxuIjsKICAgICAgICB9Cn0=