#D0974. 风吹棋盘

风吹棋盘

题目描述

小 D 有一个 nn 行 mm 列的棋盘,最初每个格子上都放着一枚棋子。

他准备进行 qq 次吹气。每次他会选定一个方向,然后棋盘上所有棋子同时朝该方向移动一格。移动之后,落在棋盘外的棋子会掉下去,永远不会再回到棋盘上。

每次吹气结束后,小 D 都想知道棋盘上还剩下多少枚棋子。

方向用整数表示:00 表示向上,11 表示向右,22 表示向下,33 表示向左。

输入格式

第一行三个整数 n,m,qn,m,q。

接下来 qq 行,每行一个整数 xx,表示本次吹气的方向(0/1/2/30/1/2/3)。

输出格式

输出 qq 行,每行一个整数,表示本次吹气后棋盘上剩余的棋子数。

样例

3 4 2
2
1
8
6
2 4 3
1
1
3
6
4
4
1 3 4
3
1
0
2
2
2
0
0

样例解释

样例 1:初始有 3×4=123 \times 4=12 枚棋子。向下后最下行掉出,剩 2×4=82\times 4=8 枚;再向右,最右列掉出,剩 2×3=62\times 3=6 枚。

样例 2:第一次向右后,每行存活棋子位于第 2,3,42,3,4 列,共 66 枚。第二次向右时,位于第 44 列的棋子从右边界掉出,存活棋子位于第 3,43,4 列,共 44 枚。随后向左,存活棋子移到第 2,32,3 列,没有新棋子掉出,仍为 44 枚。

样例 3:向左后剩两枚,位于第 1,21,2 列;再向右移到第 2,32,3 列,仍剩两枚。棋盘只有一行,向上会使所有棋子掉出,之后向下也不会让已消失的棋子回来。

数据范围与约定

子任务 分值 限制
11 3030 n,m≤100n,m\le 100,q≤1000q\le 1000
22 n=1n=1
33 4040 无额外限制

对于 100%100\% 的数据,1≤n,m,q≤3×1051\le n,m,q\le 3\times10^5,每次给定的方向 xx 都为 0,1,2,30,1,2,3 之一。