項数 N 、初項 a 、公差dの等差数列 A がある。 以下の形式で、数列を書き換える M 個の命令文が与えられるので、与えられた順序で M 回 数列 A を書き換えたときの数列 A の K項目の値を求めなさい。
N a d M x1 y1 z1 x2 y2 z2 ... xM yM zM K
1行目に、1つの整数 N が与えられる。 2行目に、2つの整数 a と d が空白区切りで与えられる。 3行目に、1つの整数 M が与えられる。 4行目からの M 行のうち i 行目には i 番目の命令文を表す 3 つの整数 xi, yi, zi が空白区切りで与えられる。 最後の行に、1つの整数 K が与えられる。
入力で与えられた順番で数列AをM回更新したときのK項目を出力せよ。
4 2 1 3 0 1 2 1 1 4 2 2 4 3
2
{ 2 , 3 , 4 , 5 }
↓ 0 1 2 ... 1項目から2項目までの区間の値の順序を反転する
{ 3 , 2 , 4 , 5 }
↓ 1 1 4 ... 1項目から4項目までの区間の値をそれぞれ1増やす
{ 4 , 3 , 5 , 6 }
↓ 2 2 4 ... 2項目から4項目までの区間の値をそれぞれ半分にする(小数点以下切り捨てる)
{ 3 , 1 , 2 , 3 }
よって3項目の値は2である。
5 1 2 3 1 2 3 2 3 5 0 1 5 1
4
{ 1 , 3 , 5 , 7 , 9 }
↓ 1 2 3 ... 2項目から3項目までの区間の値をそれぞれ1増やす
{ 1 , 4 , 6 , 7 , 9 }
↓ 2 3 5 ... 3項目から5項目までの区間の値をそれぞれ半分にする(小数点以下切り捨てる)
{ 1 , 4 , 3 , 3 , 4 }
↓ 0 1 5 ... 1項目から5項目までの区間の値の順序を反転する
{ 4 , 3 , 3 , 4 , 1 }
よって1項目の値は4である。