#include using namespace std; #define int long long int N,Q; signed main(){ //ステップ1. 入力の受け取り cin>>N; vector D(2*N+1); for(int i = 1; i <= N; i++) cin>>D[i]; //ステップ2. クエリ解答への準備 for(int i = N+1; i <= N*2; i++) D[i] = D[i-N]; for(int i = 1; i <= N*2; i++) D[i] += D[i-1]; int sum_D = D[N]; //1年の日数 //ステップ3. クエリへの解答 cin>>Q; for(int i = 0; i < Q; i++){ int y,m,d,k; cin>>y>>m>>d>>k; int ans_y = y + k / sum_D; int ans_m = m; int ans_d = d; k %= sum_D; if(d + k <= (D[m] - D[m-1])){//k日後が今月中に訪れる場合 ans_m = m; ans_d = d + k; } else{ ans_d = D[m] - D[m-1]; k -= ((D[m] - D[m-1]) - d); //月末に移動 ans_m = lower_bound(D.begin(),D.end(),k + D[m]) - D.begin(); k -= (D[ans_m-1] - D[m]); if(ans_m > N){//年越しする場合 ans_m -= N; ans_y++; } ans_d = k; } cout << ans_y << " " << ans_m << " " << ans_d << "\n"; } }