问题 D: 3D方块(树套树)

问题 D: 3D方块(树套树)

时间限制: 1 Sec  内存限制: 256 MB
提交: 0  解决: 0
[提交] [状态] [讨论版] [命题人:]

题目描述

“俄罗斯方块”游戏的作者想做一个新的三维的版本。在这个版本中长方形会掉到一个矩形的平台上。这此块按照一定顺序分开落下,就像在二维的游戏中一样。一个块会一直往下掉直到它遇到障碍,比如平台或者另外的已经停下的块,然后这个块会停在当前位置直到游戏结束。
然而,游戏的作者们想改变这个游戏的本质,把它从一个简单的街机游戏变成更有迷惑性的游戏。当知道方块落下的顺序和它们的下落路线后,玩家的任务是在所有块落下停住以后给出最高点的高度。所有的块都是垂直落下的而且在落下的过程中不旋转。为了把问题简单化,我们给平台建立直角坐标系,坐标系的原点在平台的某个角上,轴平行于平台的边。
写一个程序满足下列要求:
(1)从输入中读入接连落下的块的描述;
(2)得出所有块下落停止后最高点的高度;
(3)输出答案。

输入

第一行有3个数据D,S和N(1≤N≤20000,1≤D,S≤1000),用一个空格分开,分别表示平台的长度和深度以及下落块的个数。
下面N行分别描述这N个块。每个块的描述包括5个数字:d,s,w,x和y(1≤d,0≤x,d+x≤D,1≤s,0≤y,s+y≤S,1≤w≤100000),表示一个长度为d,深度为s、高度为w的块,这个块掉下时以d ×s的面为底,并且两边分别与平台两边平行。这样,这个块的顶点在平台上的投影为(x,y),(x+d,y),(x ,y+s)和(x+d,y+s)  。

输出

输出有且仅有一个整数,表示最高点的高度。

样例输入 Copy

7 5 4
4 3 2 0 0
3 3 1 3 0
7 1 2 0 3
2 3 3 2 2

样例输出 Copy

6