Untitled

 avatar
unknown
plain_text
a month ago
1.0 kB
1
Indexable
#include <bits/stdc++.h>
#define lli long long int

using namespace std;

lli check(lli w, lli a, lli b, lli c){
  
  lli res = a*w*w + b*w;
  res = res - c;
  
  return res;
}

void solve(){
  lli n, d;
  cin>>n>>d;
  
  vector<int> v(n);
  for(int i=0;i<n;i++) cin>>v[i];
  
  lli sum = 0, sqsum = 0;
  
  for(int i=0;i<n;i++){
    sum += v[i];
    sqsum += (v[i] * v[i]);
    
  }
  // cout<<sum<<" "<<sqsum<<endl;
  
  lli a = 4*n, b = 4*sum, c = sqsum - d;
  
  // cout<<a<<" "<<b<<" "<<c<<endl;
  
  int low = 1, high = 1e9;  // max is sqrt(c)
  
  while(low <= high){
    int mid = low + (high - low) / 2;
    
    lli res = check(mid, a, b, c);
    
    if(res == 0){
      cout<<mid<<endl;
      return;
    }
    else if(res > 0){
      high = mid - 1;
    }
    else{
      low = mid + 1;
    }
  }
  cout<<low<<endl;
  
}

// 1
// 2
// 4
// 5
// 7654321
// 126040443
// 79356352
// 124321725
// 113385729
// 110961227




int main() 
{
    int t;
    cin>>t;
    
    while(t--){
      solve();
    }
    return 0;
}
Leave a Comment