#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,T,x,a,b,c,sum1,sum2,sum3;
signed main()
{
freopen("新建文本文档.in","r",stdin);
freopen("新建文本文档.out","w",stdout);
cin>>T;
while (T--)
{
cin>>n;
sum1=sum2=sum3=a=b=c=0;
for (int i=1;i<=n;i++)
{
cin>>x;
c=c+x/3;
sum3=sum3+x/3;
if (x%3==1) a++;
if (x%3==2) b++;
}
if (a+2*b<=c)
{
cout<<a<<' '<<b<<' '<<c<<endl;
c=c-a-2*b;
int t;
if (c%4==1||c%4==2) t=2;
if (c%4==3) t=3;
int ans=a+2*b+c/4*3+t;
cout<<ans<<endl;
}
else
{
if (c>=a) c=c-a;
else sum1=a-c,c=0;
if (c<2*b)
sum2=(b*2+1-c)/2;
cout<<sum1+sum2+sum3<<endl;
}
}
}
若代码加入P26行调试对于大样例会输出如下答案
100010 99831 50111229648344
37583422311176
99692 100149 50013360691684
37510020593761
100221 99905 49978126287302
37483594790485
但删去P26行调试后代码则会输出如下答案
178302014062712
37510020593761
37483594790485
请问这是怎么回事?