#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; using namespace atcoder; typedef long long ll; typedef pair P; int main() { int t; cin>>t; while(t--){ ll n, a, w, k; cin>>n>>a>>w>>k; if(k=k-1){ cout<<(a-(k-1))/k<=n-(k-1)){ cout<<-1<1){ ll m=(l+r)/2; ll l1=-1, r1=2e9; while(r1-l1>1){ ll m1=(l1+r1)/2; if(m1*(m1+1)/2>=-m){ r1=m1; }else{ l1=m1; } } if(r1*(r1+1)/2+m>a){ r1--; if(r1<0){ r=m; continue; } } r1=min(r1, w); ll a1, x1; if(-r1*(r1+1)/2>=m){ a1=a; x1=-r1*(r1+1)/2+1; }else{ a1=a-(m+r1*(r1+1)/2); x1=m+1; } ll w1=w-r1; ll p=w1%(n-1); ll q=w1/(n-1); lll s=(lll)max(0ll, x1+(q+1)*(q+2)/2)*p+(lll)max(0ll, x1+(q+1)*q/2)*(n-1-p); if(s<=a1) l=m; else r=m; } cout<