Algorithm
Little Petya loves inequations. Help him find n positive integers a1, a2, ..., an, such that the following two conditions are satisfied:
- a12 + a22 + ... + an2 ≥ x
- a1 + a2 + ... + an ≤ y
The first line contains three space-separated integers n, x and y (1 ≤ n ≤ 105, 1 ≤ x ≤ 1012, 1 ≤ y ≤ 106).
Please do not use the %lld specificator to read or write 64-bit integers in ะก++. It is recommended to use cin, cout streams or the %I64d specificator.
Print n positive integers that satisfy the conditions, one integer per line. If such numbers do not exist, print a single number "-1". If there are several solutions, print any of them.
5 15 15
4
4
1
1
2
2 3 2
-1
1 99 11
11
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include <cstdio>
#include <vector>
int main(){
long long n, x, y; scanf("%lld %lld %lld", &n, &x, &y);
bool possible = 1;
std::vector<long long> numbers(n, 1);
numbers[n - 1] = y - (n - 1);
if(numbers[n - 1] <= 0){possible = 0;}
long long sumOfSquares = 0;
for(int p = 0; p < n; p++){sumOfSquares += numbers[p] * numbers[p];}
if(sumOfSquares < x){possible = 0;}
if(possible){for(int p = 0; p < n; p++){printf("%lld ", numbers[p]);}; puts("");}
else{puts("-1");}
return 0;
}
Copy The Code &
Try With Live Editor
Input
Output
4
1
1
2
Demonstration
Codeforces Solution-A. Petya and Inequiations-Solution in C, C++, Java, Python