小Q家里有一个nnn行mmm列的棋盘,他在每个格子上放了一个棋子。 现在小Q的心情很糟糕,他打算拿棋子发泄。 小Q会对着棋盘用力吹气,方向只有上下左右四种,每次会使所有棋子同时向气流方向移动一格,移出棋盘的棋子不会再回到棋盘。 小Q想知道每次吹气后棋盘上还剩下多少棋子。
第一行三个正整数n,m,qn,m,qn,m,q,表示棋盘规格和小Q的吹气次数。
接下来qqq行每行一个正整数xxx,表示吹气的方向。
qqq行,表示每次吹完气后,棋盘上剩下的棋子个数。
样例输入:
4 5 5 0 3 1 2 1
样例输出:
15 12 12 12 9
样例解释: 第111次吹气所有棋子向上移动111格,第111行的棋子全部移出,还剩3∗5=153*5=153∗5=15个棋子。 第2次吹气所有棋子向左移动111格,333个棋子从左侧移出,还剩3∗4=123*4=123∗4=12个棋子。
1<=n,m,q<=3000001<=n,m,q<=3000001<=n,m,q<=300000
说明: 若使用cin读入,可以在main函数的开头写:ios::sync_with_stdio(false);以提升读入速读,且该程序不要再使用scanf进行输入。
cin
main
ios::sync_with_stdio(false)
scanf
//... int main(){ ios::sync_with_stdio(false); //... return 0; }