54 lines
1.0 KiB
C++
54 lines
1.0 KiB
C++
#include <algorithm>
|
|
#include <iostream>
|
|
using namespace std;
|
|
int main()
|
|
{
|
|
int m, n, a[1001] = { 0 }, all = 0,ans=0;
|
|
cin >> m >> n;
|
|
for (int i = 1; i <= n; i++) {
|
|
cin >> a[i];
|
|
all += a[i];
|
|
}
|
|
|
|
if (m >= all) {
|
|
cout << "0";
|
|
return 0;
|
|
}
|
|
|
|
sort(a + 1, a + 1 + n);
|
|
all -= m;
|
|
int que = all,ji=n;
|
|
all /= n;
|
|
bool ce=0;
|
|
for (int i = 1; i <= n; i++) {
|
|
if (a[i] <= all){
|
|
que-=a[i];
|
|
ans+=a[i]*a[i];
|
|
}else{
|
|
if(ce=0){
|
|
ce=1;
|
|
ji=i;
|
|
}
|
|
que-=all;
|
|
ans+=all*all;
|
|
}
|
|
}
|
|
|
|
while(que>0){
|
|
all++;
|
|
for(int i=n;i>=ji;i--){
|
|
if(a[i]>=all){
|
|
ans=ans-(all-1)*(all-1)+all*all;
|
|
if(que==0){
|
|
break;
|
|
}
|
|
}else{
|
|
ji=i-1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
cout<<ans;
|
|
return 0;
|
|
}
|