生命游戏
题号:NC19772
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 1024 M,其他语言2048 M
64bit IO Format: %lld

题目描述

明明和白白是好朋友,他们最近在研究 XOR 生命游戏。
在一个二维的平面中,细胞存在于一些格点上。每个时刻所有细胞都会同时分裂成四个,并分别移动到相邻的四个格点中;此时当某个格点上出现奇数个细胞的时候,只有一个能活下来;而当出现了偶数个细胞的时候,这个格点上的所有细胞同时消失。
明明明明明白白白不擅长数数,却偏要让白白算出从 1 到 N 时刻所有细胞的个数之和。无助的白白只好求助于聪明的你了。为了简化问题,数据保证初始时刻(时间戳为1)恰好有两个细胞。

输入描述:

五个整数,N, x1, y1, x2, y2, 表示需要计算的时长为 N,两个细胞的坐标分别为 (x1, y1), (x2, y2).

输出描述:

一个整数,表示 1 ~ N 时刻所有细胞个数之和。
示例1

输入

复制
3 0 0 2 2

输出

复制
14

说明

第1个时刻的细胞有:(0, 0), (1, 1)
第2个时刻的细胞有:(0, 1), (1, 2), (3, 2), (-1, 0), (2, 1), (2, 3), (0, -1), (1, 0)
第3个时刻的细胞有:(2, 4), (0, -2), (4, 2), (-2, 0)
所以答案是 2 + 8 + 4 = 14

备注:

1≤ M ≤ 2, 1 ≤ N ≤ 109, 0 ≤ |x1|, |x2|, |y1|, |y2| ≤ 109