#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; bool ok=0; ll p=w%n, q=w/n; if(p==0){ if(-q*(q+1)/2>=m){ if(a>=n-1) ok=1; }else{ ll s=(m+q*(q+1)/2)+max(0ll, m+q*(q+1)/2+1)*(n-1); if(a>=s) ok=1; } if(w!=0){ if(-(q+2)*(q+1)/2>=m){ ok=1; }else{ ll s=(m+(q+2)*(q+1)/2)+max(0ll, m+q*(q+1)/2+1)*(n-2)+max(0ll, m+q*(q-1)/2+1); if(a>=s) ok=1; } } }else{ if(-(q+2)*(q+1)/2>=m){ if(a>=p-1) ok=1; }else{ ll s=(m+(q+2)*(q+1)/2)+max(0ll, m+(q+2)*(q+1)/2+1)*(p-1)+max(0ll, m+q*(q+1)/2+1)*(n-p); if(a>=s) ok=1; } if(p!=1){ if(-(q+2)*(q+3)/2>=m){ ok=1; }else{ ll s=(m+(q+2)*(q+3)/2)+max(0ll, m+(q+2)*(q+1)/2+1)*(p-2)+max(0ll, m+q*(q+1)/2+1)*(n-p+1); if(a>=s) ok=1; } } } if(ok) l=m; else r=m; } cout<