Pagini recente » Cod sursa (job #52212) | Cod sursa (job #820927) | Cod sursa (job #2405038) | Cod sursa (job #465801) | Cod sursa (job #600321)
Cod sursa(job #600321)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main () {
ifstream in ("sume.in");
ofstream out ("sume.out");
int n,i,j;
in >> n;
vector <int> sume (n);
for (i = 0; i < n; i++)
in >> sume[i];
i = 1;
int dim;
while (n > 0)
n -= i++;
if (n == 0)
dim = i;
else
{
out << -1;
return 0;
}
vector <int> sol (dim);
if ((sume[0] + sume[1] - sume[dim - 1]) % 2 != 0)
{
out << -1;
return 0;
}
sol[0] = (sume[0] + sume[1] - sume[dim - 1])/2;
for (i = 1; i < dim; i++)
sol[i] = sume[i - 1] - sol[0];
int k = 0;
for (i = 0; i < sol.size();i++)
for (j = i + 1; j < sol.size(); j++)
if (sol[i] + sol[j] != sume[k++])
{
out << -1;
return 0;
}
out << dim << endl;
for (i = 0; i < dim; i++)
out << sol[i] << " ";
return 0;
}