#include using namespace std; #define ALL(x) begin(x),end(x) #define rep(i,n) for(int i=0;i<(n);i++) #define debug(v) cout<<#v<<":";for(auto x:v){cout<bool chmax(T &a,const T &b){if(abool chmin(T &a,const T &b){if(b ostream &operator<<(ostream &os,const vector&v){ for(int i=0;i<(int)v.size();i++) os< istream &operator>>(istream &is,vector&v){ for(T &x:v)is>>x; return is; } // 2^127 = 170141183460469231731687303715884105728 ~ 10^38 ostream &operator<<(ostream &os,const __int128 &n){ if(n==0){ os<<0; return os; } __int128 num=n; bool neg=false; if(num<0)neg=true,num=-num; string res=""; while(num>0){ res.push_back('0'+num%10); num/=10; } if(neg) res.push_back('-'); reverse(begin(res),end(res)); os<>(istream &is,__int128 &n){ string s; is>>s; int idx=0; bool neg=false; if(s[0]=='-')neg=true,idx++; n=0; for(;idx<(int)s.size();idx++){ n=10*n+s[idx]-'0'; } if(neg) n=-n; return is; } __int128 abs128(__int128 x){ return x<0?-x:x; } __int128 gcd128(__int128 a,__int128 b){ if(a==0) return b; if(b==0) return a; return b>0?gcd128(b,a%b):a; } using ll=__int128; const int INF=1000000000; const ll LINF=1001002003004005006ll; signed main(){ int q;cin>>q; while(q--){ int n;cin>>n; ll a,w,k;cin>>a>>w>>k; if(k==1){ cout< v(k-1); AC-=mid; rep(i,k-1) v[i]=AC/(k-1)+(imid) return true; return false; }; if(k p(n); rep(i,n) p[i]=a/n+(i v(n,0); rep(i,n) v[i]=t; w-=t*(t+1)/2*n; rep(i,w) v[i%n]++; ll ans=-LINF; auto unko=[&](){ vector> y(n); rep(i,n) y[i]=make_tuple(p[i]-v[i]*(v[i]+1)/2,p[i],v[i]); sort(ALL(y)); if(get<0>(y[0])!=get<0>(y[1])){ chmax(ans,get<0>(y[0])); }else{ if(get<1>(y[0])){ chmax(ans,get<0>(y[0])-1); }else{ ll mugen=0; for(int i=1;i(y[i])); } if(mugen){ ll hoge=get<2>(y[0])+1; chmax(ans,get<1>(y[0])-hoge*(hoge+1)/2); } } } }; sort(ALL(v)); sort(ALL(p)); unko(); reverse(ALL(v)); unko(); reverse(ALL(p)); unko(); reverse(ALL(v)); unko(); if(ans<=-LINF) cout<<":("<