C. Petya and Inequiations
题意:
给你一个数字 n,x,y
求使得
满足这个条件的 数组 a
问题分析:
尽量保证其中一个 平方数最大就行
因为一个数 分解成 几个数 取平方后的 和
的最大值一定是 除了其中一个数以外其他都是1
为啥?、、、、、
我也有点懵,,,我感觉应该可以靠 y=x^2 的图来解释
。。。。。
具体看代码
AC代码:
#include<map>
#include<set>
#include<cmath>
#include<queue>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<sstream>
#include<algorithm>
using namespace std;
#define ll long long
#define mem(a,b) memset((a),(b),sizeof(a));
#define lowbit(a) ((a)&-(a))
const ll inf=0x3f3f3f3f;//1061109567,2*未超int,allinf=mem(a,0x3f,sizeof(a));
const int N=1e3+10;
int main(){
//#define io
#ifdef io
freopen("in.txt","r",stdin);
#endif
cin.tie(0);
ll n,x,y,sum;
sum=0;
cin>>n>>x>>y;
ll ma=y-n+1;
sum=pow(ma,2)+n-1;
if(sum>=x&&ma>0){
cout<<ma<<endl;;
for(int i=0;i<n-1;i++){
cout<<1<<endl;
}
}else{
cout<<-1;
}
return 0;
}