#include <bits/stdc++.h>
using namespace std;
vector < long long int> a;
long long int n,d,t,i,j,b,x,ax,bx;
long long int m,m2,y,L,P,c,tt,e,Sb,Lb,Pb,S;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> t;
for(i=0;i<t;i++) {
cin >> n;
a={};
for(j=0;j<n;j++) {
cin >> c;
if(c>0)
a.push_back(6*c);
}
P=200*a.size();
L=0;
while (L<P){
S=(L+P)/2;
x=0;
e=0;
for(auto b: a) {
Lb=1;
Pb=S-x+1;
ax=(2 - 3*S+6*S*x-6*x*x);
bx=(S-2*x);
while(Lb<Pb){
Sb=(Lb+Pb)/2;
if ((ax+Sb*(3*bx -2*Sb))<=(b-1)/Sb)
Lb=Sb+1;
else
Pb=Sb;
if( Lb==S-x+1){
e=1;
break;
}}
x+=Lb ;
}
if( e)
L=S+1;
else
P=S;
}
cout << L <<'\n';
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include <bits/stdc++.h> using namespace std; vector < long long int> a; long long int n,d,t,i,j,b,x,ax,bx; long long int m,m2,y,L,P,c,tt,e,Sb,Lb,Pb,S; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> t; for(i=0;i<t;i++) { cin >> n; a={}; for(j=0;j<n;j++) { cin >> c; if(c>0) a.push_back(6*c); } P=200*a.size(); L=0; while (L<P){ S=(L+P)/2; x=0; e=0; for(auto b: a) { Lb=1; Pb=S-x+1; ax=(2 - 3*S+6*S*x-6*x*x); bx=(S-2*x); while(Lb<Pb){ Sb=(Lb+Pb)/2; if ((ax+Sb*(3*bx -2*Sb))<=(b-1)/Sb) Lb=Sb+1; else Pb=Sb; if( Lb==S-x+1){ e=1; break; }} x+=Lb ; } if( e) L=S+1; else P=S; } cout << L <<'\n'; } } |
English