CF243C Colorado Potato Beetle

题目描述

老麦克唐纳拥有一个农场以及一块巨大的马铃薯田,这块田地的大小为 $ (10^{10}+1) \times (10^{10}+1) $ 平方米。田地被划分为若干平方花床,每个花床占有 $1$ 平方米。 老麦克唐纳知道科罗拉多马铃薯甲虫即将入侵他的农场,并且可能会毁掉所有的收成。为了对抗害虫,老麦克唐纳打算在部分花床上喷洒杀虫剂。 于是老麦克唐纳走到田地的中心,站在最中央的花床上,然后对这块花床喷洒了杀虫剂。现在他将要执行一系列的移动,并对更多的花床喷洒杀虫剂。在每一步移动中,老麦克唐纳会向左、右、上或下方向移动若干米(每次是整数米数)。在他移动的过程中,他经过的所有花床都会被喷洒杀虫剂。也就是说,只要花床和老麦克唐纳的移动轨迹有任何交集,这块花床就会被喷洒杀虫剂。 在完成喷洒后,老麦克唐纳把所有的移动记录在纸上。现在他想知道,在科罗拉多甲虫入侵之后,有多少块花床不会被感染。 甲虫的入侵方式如下:首先,田地边界上的某一块花床被感染。然后,所有尚未被感染、尚未被喷洒杀虫剂、且与已感染花床有公共边的花床,也会被感染。请帮助老麦克唐纳计算,不会被科罗拉多甲虫感染的花床数量。

输入格式

第一行包含一个整数 $ n $($ 1 \le n \le 1000 $),表示老麦克唐纳的移动次数。 接下来的 $ n $ 行,每行描述老麦克唐纳的一次移动。第 $ i $ 行为 " $ d_{i} $ $ x_{i} $",其中 $ d_{i} $ 是字符,表示移动方向("L" 表示左,"R" 表示右,"U" 表示上,"D" 表示下),$ x_{i} $($ 1 \le x_{i} \le 10^6 $)是整数,表示这次移动的米数。

输出格式

输出一个整数,表示不会被科罗拉多甲虫感染的花床总数。 请不要在 C++ 中使用 %lld 进行 64 位整数的输入输出。建议使用 cin、cout 流或 %I64d 格式符。

说明/提示

由 ChatGPT 5 翻译