#include <iostream>
#include <vector>
#include <algorithm>
#include <iostream>
#include <cmath>
#include <cfenv>
#include <climits>
#include <iostream>
#include <vector>
#include <numeric>
#include <string>
#include <functional>
using namespace std;
int main() {
std::vector<float> data = {1, 4};
size_t num_tokens = data.size();
size_t num_frames = std::accumulate(data.begin(), data.end(), 0, [&](size_t a, float b){return a + lround(b);});
cout<<num_tokens << " " << num_frames << endl;
std::vector<float> upsampled_data(num_tokens * num_frames);
size_t begin = 0;
for(size_t row=0; row < data.size(); ++row) {
std::fill(upsampled_data.begin() + row * num_frames + begin,
upsampled_data.begin() + row * num_frames + begin + lround(data[row]), 1);
begin += lround(data[row]);
}
for (auto x : upsampled_data)
{
cout<<x<<" ";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGNmZW52PgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglzdGQ6OnZlY3RvcjxmbG9hdD4gZGF0YSA9IHsxLCA0fTsKCXNpemVfdCBudW1fdG9rZW5zID0gZGF0YS5zaXplKCk7CglzaXplX3QgbnVtX2ZyYW1lcyA9IHN0ZDo6YWNjdW11bGF0ZShkYXRhLmJlZ2luKCksIGRhdGEuZW5kKCksIDAsIFsmXShzaXplX3QgYSwgZmxvYXQgYil7cmV0dXJuIGEgKyBscm91bmQoYik7fSk7Cgljb3V0PDxudW1fdG9rZW5zIDw8ICIgIiA8PCBudW1fZnJhbWVzIDw8IGVuZGw7CglzdGQ6OnZlY3RvcjxmbG9hdD4gdXBzYW1wbGVkX2RhdGEobnVtX3Rva2VucyAqIG51bV9mcmFtZXMpOwoJCglzaXplX3QgYmVnaW4gPSAwOwoJCglmb3Ioc2l6ZV90IHJvdz0wOyByb3cgPCBkYXRhLnNpemUoKTsgKytyb3cpIHsKCSAgIHN0ZDo6ZmlsbCh1cHNhbXBsZWRfZGF0YS5iZWdpbigpICsgcm93ICogbnVtX2ZyYW1lcyArIGJlZ2luLAoJICAgICAgICAgICAgIHVwc2FtcGxlZF9kYXRhLmJlZ2luKCkgKyByb3cgKiBudW1fZnJhbWVzICsgYmVnaW4gKyBscm91bmQoZGF0YVtyb3ddKSwgMSk7CgkgICAKCSAgIGJlZ2luICs9IGxyb3VuZChkYXRhW3Jvd10pOwoJfQoJZm9yIChhdXRvIHggOiB1cHNhbXBsZWRfZGF0YSkKCXsKCQljb3V0PDx4PDwiICI7Cgl9CglyZXR1cm4gMDsKfQ==