然后我们可以看,a<b<c,那么我们结合之前的理论,b 在一般情况下是 \frac{n}{3},那么,我们就很自然的想到用 \frac{n}{3} 作为一个衡量的标准,然后就是对于 n \bmod 3 的分类讨论。
最后一种情况就是 n \bmod 3=2,我们与第二种情况一样,也是在 n \bmod 3=0 的情况下,考虑多余的 2 放在哪里,然后就可以再分类(反正 a 是不能加的)。
我们来比较一下 (a^2+(b+1)^2+(c+1)^2=a^2+b^2+2\times b+1+c^2+2\times c+10) 和 (a^2+b^2+(c+2)^2=a^2+b^2+c^2+4\times c+4) 的大小,考虑到 b<c,2<4 所以将 2 拆开,分别加到 b 和 c 上面更加符合题意的 \min。
代码
#include<bits/stdc++.h>
using namespace std;
int n;
int a,b,c;
int main(){
cin>>n;
a=n/3-1,b=n/3,c=n/3+1;
if (n%3==2) b+=1;
if (n%3!=0) c+=1;
cout<<a<<" "<<b<<" "<<c;
return 0;
}