求助一道站外题,只需要思路即可(主要是不知道这个数可以怎么分,写了一个O(n)的算法超时且答案错误了,代码见下)
#include<bits/stdc++.h>
using namespace std;
int T,n,maxn;
int main()
{
cin>>T;
for(int i=0;i<T;i++)
{
cin>>n;
if(n<=5)
{
cout<<-1<<endl;
continue;
}
maxn=0;
for(int a=1;a<=sqrt(n);a++)
{
int b=2*a,c;
c=n-b-a;
if(a==b||c<=a) continue;
maxn=max(a,maxn);
}
cout<<maxn<<endl;
}
}