rendered paste body#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <cmath>
using namespace std;
double mean(vector<int>& population)
{
int sum = 0;
for (unsigned int i = 0; i < population.size(); i++)
{
sum += population[i];
}
return (double)sum / (double)population.size();
}
double standardDeviation(vector<int>& population, double mean)
{
double sum = 0;
for (unsigned int i = 0; i < population.size(); i++)
{
sum += ((double)population[i] - mean) * ((double)population[i] - mean);
}
sum /= (double)(population.size()-1);
sum = sqrt(sum);
return sum;
}
double personCoeff(vector<int>& popX, vector<int>& popY)
{
double sum = 0,
meanX = mean(popX),
meanY = mean(popY),
sigmaX = standardDeviation(popX, meanX),
sigmaY = standardDeviation(popY, meanY);
for (unsigned int i = 0; i < popX.size(); i++)
{
sum += ((double)popX[i] - meanX) * ((double)popY[i] - meanY);
}
sum /= (double)(popX.size() - 1);
sum /= (sigmaX * sigmaY);
return sum;
}
int main ()
{
string input;
cin >> input;
vector<int> popX;
vector<int> popY;
while(input[0] != '-')
{
popX.push_back(atoi(input.c_str()));
cin >> input;
popY.push_back(atoi(input.c_str()));
cin >> input;
}
if (popX.size() == 0 || popY.size() == 0)
{
printf("invalid input\n");
}
printf("%.4f\n", personCoeff(popX, popY));
return 0;
}