#include <future>
#include <iostream>
#include <vector>
int main() {
std::vector<std::future<int>> futures;
for(int i = 0; i < 4; ++i) {
futures.emplace_back (std::async(
std::launch::async,[](int a,int b){return a*b;}, i,i));
}
double r;
for(auto &e : futures) {
auto temp = e.get();
std::cout << temp << std::endl;
r +=temp;
}
std::cout<<r<<std::endl;
return 0;
}
I2luY2x1ZGUgPGZ1dHVyZT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKIGludCBtYWluKCkgewogICBzdGQ6OnZlY3RvcjxzdGQ6OmZ1dHVyZTxpbnQ+PiBmdXR1cmVzOwoKICAgZm9yKGludCBpID0gMDsgaSA8IDQ7ICsraSkgewogICAgIGZ1dHVyZXMuZW1wbGFjZV9iYWNrIChzdGQ6OmFzeW5jKAoJCXN0ZDo6bGF1bmNoOjphc3luYyxbXShpbnQgYSxpbnQgYil7cmV0dXJuIGEqYjt9LCBpLGkpKTsKICAgfQoKICBkb3VibGUgcjsKICBmb3IoYXV0byAmZSA6IGZ1dHVyZXMpIHsKCWF1dG8gdGVtcCA9IGUuZ2V0KCk7CiAgICBzdGQ6OmNvdXQgPDwgdGVtcCA8PCBzdGQ6OmVuZGw7CiAgICByICs9dGVtcDsKICAgfQogICBzdGQ6OmNvdXQ8PHI8PHN0ZDo6ZW5kbDsKICAgcmV0dXJuIDA7CiB9Cg==