Petya and Inequiations 题解
来源:互联网 发布:网页视频下载软件 编辑:程序博客网 时间:2024/06/03 19:30
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
44112
2 3 2
-1
1 99 11
11
思路:
令a1 + a2 + ... + an= y,那么现在想办法如何拆分y使得a12 + a22 + ... + an2取得最大值,当其中n-1个数都取1,剩下一个数取y-(n-1)时a12 + a22 + ... + an2取得最大值。因此,令a1 + a2 + ... + an= y时,若a12 + a22 + ... + an2大于等于x,那么存在解,且此时的a1,…,an是其中的一组解,否则不存在解。
代码:
#include <iostream>using namespace std;int main(){ int64_t n,y; int64_t x; while(cin>>n>>x>>y) { if(y>=n) { int64_t temp=y-(n-1); if(temp*temp+(n-1)>=x) { cout<<temp<<endl; for(int i=0;i<n-1;i++) cout<<1<<endl; } else cout<<-1<<endl; } else cout<<-1<<endl; } return 0;}
- Petya and Inequiations 题解
- Codeforces 111C Petya and Spiders 题解&代码
- Petya and Coloring
- A. Petya and Strings
- B. Petya and Countryside
- B. Petya and Square
- A. Petya and Java
- B. Petya and Staircases
- Petya and Square
- Petya and Countryside
- Petya and Java
- Petya and Countryside<水题>
- Petya and Java
- Petya and Strings
- Coderforces Petya and Strings
- Codeforces832B Petya and Exam
- Petya and Exam
- cfRound425B. Petya and Exam
- linux面试准备2
- SharedPreference.Editor的apply和commit方法异同
- HashMap,LinkedHashMap,TreeMap
- 触屏拖动
- u盘安装ubuntu看不到机械硬盘,可以看到SSD
- Petya and Inequiations 题解
- 动态规划:POJ2576-Tug of War(二维费用的背包问题)
- 大数据常见错误解决方案
- Unity3d 一个优秀的程序必备的几种设计模式
- 深度学习资料
- Java多线程和操作系统多线程关系
- ACM 组合数学
- MySQL 数据库常用命令小结
- Tomcat优化详细教程