#include #include using namespace std; using namespace atcoder; #define ll long long #define rep(i,a,b) for(int i=(a);i<(b);i++) #define repl(i,a,b) for(ll i=(a);i<(b);i++) #define all(a) (a).begin(),(a).end() template bool chmin(T &a,T b){if(a>b){a=b;return true;} return false;} template bool chmax(T &a,T b){if(a> n; vector D(n); rep(i,0,n) cin >> D[i]; ll yd=0; vector sum(2*n+1); rep(i,0,2*n) sum[i+1]=sum[i]+D[i%n]; rep(i,0,n) yd+=D[i]; int q; cin >> q; while(q--){ ll y,m,d,k; cin >> y >> m >> d >> k; y+=k/yd; k-=yd*(k/yd); if(d+k<=D[m-1]){ cout << y << " " << m << " " << d+k << endl; continue; } else{ k-=D[m-1]-d+1; d=1; m++; if(m == n+1){ y++; m=1; } int left=m-1,right=m+n; while(right-left>1){ int mid=(left+right)/2; if(sum[mid]-sum[m-1]<=k) left=mid; else right=mid; } k-=sum[left]-sum[m-1]; m=left+1; if(m>n){ y++; m-=n; } d=1; if(k>0){ d+=k; } cout << y << " " << m << " " << d << endl; } } }