#include <iostream>
#include <string>
int main()
{
srand(time(NULL));
const unsigned int size = rand() % 1024;
double *average = new double[size], *source = new double[size];
double source_sum = 0.0;
for (unsigned int i = 0; i < size; ++i)
source_sum += source[i] = rand() % 1024;
double *loop = new double [size];
for (unsigned int j = 0; j < size; ++j)
{
for (unsigned int i = 0; i < size; ++i)
loop[j]+= average[i] = (source[(i - 1 + size) % size] + source[(i + 1) % size])/2;
for (unsigned int i = 0; i < size; ++i)
source[i]=average[i];
}
for (unsigned int i = 0; i < size; ++i)
std::cout << loop[i] << std::endl;
delete[] source;
delete[] average;
delete[] loop;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKaW50IG1haW4oKQp7CglzcmFuZCh0aW1lKE5VTEwpKTsKCWNvbnN0IHVuc2lnbmVkIGludCBzaXplID0gcmFuZCgpICUgMTAyNDsKCWRvdWJsZSAqYXZlcmFnZSA9IG5ldyBkb3VibGVbc2l6ZV0sICpzb3VyY2UgPSBuZXcgZG91YmxlW3NpemVdOwoJZG91YmxlIHNvdXJjZV9zdW0gPSAwLjA7Cglmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHNpemU7ICsraSkKCQlzb3VyY2Vfc3VtICs9IHNvdXJjZVtpXSA9IHJhbmQoKSAlIDEwMjQ7Cglkb3VibGUgKmxvb3AgPSBuZXcgZG91YmxlIFtzaXplXTsKCWZvciAodW5zaWduZWQgaW50IGogPSAwOyBqIDwgc2l6ZTsgKytqKQoJewoJCWZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQoJCQlsb29wW2pdKz0gYXZlcmFnZVtpXSA9IChzb3VyY2VbKGkgLSAxICsgc2l6ZSkgJSBzaXplXSArIHNvdXJjZVsoaSArIDEpICUgc2l6ZV0pLzI7CgkJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpCgkJCXNvdXJjZVtpXT1hdmVyYWdlW2ldOwoJfQoJZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpCgkJc3RkOjpjb3V0IDw8IGxvb3BbaV0gPDwgc3RkOjplbmRsOwoJZGVsZXRlW10gc291cmNlOwoJZGVsZXRlW10gYXZlcmFnZTsKCWRlbGV0ZVtdIGxvb3A7CglyZXR1cm4gMDsKfQ==