#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 2e5+10;
int n;
vector<int> a(N);
bool func(int num){
vector<int> v(a.begin(), a.begin()+n);
for (int i = n - 1; i >= 2; i--)
{
if(v[i] < num) return false;
int pp = min(a[i], (v[i]-num))/3;
v[i]-=3*pp;
v[i-1]+=pp;
v[i-2]+=2*pp;
}
// for (int i = 0; i < n; i++)
// {
// cout<<v[i]<<" ";
// }
// cout<<endl;
if(v[0]>=num && v[1]>=num) return true;
else return false;
}
int main(){
int t;
cin>>t;
while(t--){
cin>>n;
for (int i = 0; i < n; i++)
{
cin>>a[i];
}
int lo=0, hi=1e9, mid;
while (hi-lo>1)
{
mid=(hi+lo)/2;
if(func(mid)) lo=mid;
else hi=mid-1;
}
if(func(hi)) cout<<hi<<endl;
else cout<<lo<<endl;
}
return 0;
}
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |
1268. Search Suggestions System | 841. Keys and Rooms |
152. Maximum Product Subarray | 337. House Robber III |
869. Reordered Power of 2 | 1593C - Save More Mice |
1217. Minimum Cost to Move Chips to The Same Position | 347. Top K Frequent Elements |
1503. Last Moment Before All Ants Fall Out of a Plank | 430. Flatten a Multilevel Doubly Linked List |
1290. Convert Binary Number in a Linked List to Integer | 1525. Number of Good Ways to Split a String |
72. Edit Distance | 563. Binary Tree Tilt |
1306. Jump Game III | 236. Lowest Common Ancestor of a Binary Tree |
790. Domino and Tromino Tiling | 878. Nth Magical Number |
2099. Find Subsequence of Length K With the Largest Sum | 1608A - Find Array |
416. Partition Equal Subset Sum | 1446. Consecutive Characters |
1618A - Polycarp and Sums of Subsequences | 1618B - Missing Bigram |