#include <iostream>
#include <vector>
#include <math.h>
#include <stdlib.h>
using namespace std;
int main()
{
int i;
int n;
double sum_squares = 0;
double euclid_dist = 0;
// initialize random number generator with random seed 123
srand48(123);
// two vectors of elements of type double
vector<double> u;
vector<double> v;
// read vector size n from input
cin >> n;
// resize the vectors to accommodate n elements
u.resize(n);
v.resize(n);
// generate both vectors random, each variable from
// uniform distribution over interval [0,1)
for (i=0; i<n; i++)
{
u[i] = drand48();
v[i] = drand48();
}
// compute the sum of square differences between the
// vector elements
for (i=0; i<n; i++)
{
double diff = u[i] - v[i];
sum_squares += (diff*diff);
}
// Euclidean distance is the square root of the sum of
// square differences
euclid_dist = sqrt(sum_squares);
// print out the sum of squares and the distance
cout << "sum of squares: " << sum_squares << endl;
cout << "Euclidean distance: " << euclid_dist << endl;
// return from main with 0
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8c3RkbGliLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7CiAgaW50IGk7CiAgaW50IG47CiAgZG91YmxlIHN1bV9zcXVhcmVzID0gMDsKICBkb3VibGUgZXVjbGlkX2Rpc3QgPSAwOwoKICAvLyBpbml0aWFsaXplIHJhbmRvbSBudW1iZXIgZ2VuZXJhdG9yIHdpdGggcmFuZG9tIHNlZWQgMTIzCgogIHNyYW5kNDgoMTIzKTsKCiAgLy8gdHdvIHZlY3RvcnMgb2YgZWxlbWVudHMgb2YgdHlwZSBkb3VibGUKCiAgdmVjdG9yPGRvdWJsZT4gdTsKICB2ZWN0b3I8ZG91YmxlPiB2OwoKICAvLyByZWFkIHZlY3RvciBzaXplIG4gZnJvbSBpbnB1dAoKICBjaW4gPj4gbjsKCiAgLy8gcmVzaXplIHRoZSB2ZWN0b3JzIHRvIGFjY29tbW9kYXRlIG4gZWxlbWVudHMKCiAgdS5yZXNpemUobik7CiAgdi5yZXNpemUobik7CgogIC8vIGdlbmVyYXRlIGJvdGggdmVjdG9ycyByYW5kb20sIGVhY2ggdmFyaWFibGUgZnJvbSAKICAvLyB1bmlmb3JtIGRpc3RyaWJ1dGlvbiBvdmVyIGludGVydmFsIFswLDEpIAoKICBmb3IgKGk9MDsgaTxuOyBpKyspCiAgICB7CiAgICAgIHVbaV0gPSBkcmFuZDQ4KCk7CiAgICAgIHZbaV0gPSBkcmFuZDQ4KCk7CiAgICB9CgogIC8vIGNvbXB1dGUgdGhlIHN1bSBvZiBzcXVhcmUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGUgCiAgLy8gdmVjdG9yIGVsZW1lbnRzCgogIGZvciAoaT0wOyBpPG47IGkrKykKICAgIHsKICAgICAgZG91YmxlIGRpZmYgPSB1W2ldIC0gdltpXTsKICAgICAgc3VtX3NxdWFyZXMgKz0gKGRpZmYqZGlmZik7CiAgICB9CgogIC8vIEV1Y2xpZGVhbiBkaXN0YW5jZSBpcyB0aGUgc3F1YXJlIHJvb3Qgb2YgdGhlIHN1bSBvZiAKICAvLyBzcXVhcmUgZGlmZmVyZW5jZXMKIAogIGV1Y2xpZF9kaXN0ID0gc3FydChzdW1fc3F1YXJlcyk7CgogIC8vIHByaW50IG91dCB0aGUgc3VtIG9mIHNxdWFyZXMgYW5kIHRoZSBkaXN0YW5jZQoKICBjb3V0IDw8ICJzdW0gb2Ygc3F1YXJlczogICAgICIgPDwgc3VtX3NxdWFyZXMgPDwgZW5kbDsKICBjb3V0IDw8ICJFdWNsaWRlYW4gZGlzdGFuY2U6ICIgPDwgZXVjbGlkX2Rpc3QgPDwgZW5kbDsKCiAgLy8gcmV0dXJuIGZyb20gbWFpbiB3aXRoIDAKICAKICByZXR1cm4gMDsKfQo=