#include #include using namespace std; #include using namespace atcoder; using ll = long long; ll N,Q; string S; vector H,W,P; vector Rsum,Dsum; void init(){ Rsum = vector(N*2+1); Dsum = vector(N*2+1); for(ll i = 0;i query(ll l,ll r){ pair res = {0,0}; ll div = (r-l)/N; res = {Dsum[N]*div,Rsum[N]*div}; r -= N*div; res.first += Dsum[r]-Dsum[l]; res.second += Rsum[r]-Rsum[l]; return res; } void solve2(ll H,ll W,ll P){ ll ok = P,ng = (1e9)*3; while(ng-ok>1){ ll mid = (ok+ng)/2; auto [x,y] = query(P, mid); if(x>=H||y>=W){ ng = mid; }else{ ok = mid; } } cout<>N>>Q; cin>>S; H = vector(Q); W = vector(Q); P = vector(Q); for(ll i = 0;i>H[i]>>W[i]>>P[i]; solve(); }