牛牛防疫情
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

牛牛用卖烤串赚的钱买了一款游戏,这款游戏的地图是一个 n*n 的网格,其中有 m 个地区存在感染源(红色),其余地区为安全区(白色)。已知一个感染源可同时将与其相邻(上下左右)的安全区感染,被感染的安全区称之为新发地(黄色)。一个安全区变为一个新发地需要付出大小为 c 的代价。新发地可在下一时刻作为感染源将与其相邻的安全区感染为新的新发地。
为了遏制疫情扩散,牛牛决定采取下列两种措施
1. 在感染源(新发地)周围修建墙,墙可阻止疫情的扩散。但每堵墙需要付出大小为 1 的代价。
2. 任意让疫情扩散。

牛牛现在想知道采取哪种措施可以使得付出的代价最小。

输入描述:

第一行三个整数 n,m,c
第2至 m+1 行,每行两个整数x、y,代表感染源的位置坐标(x,y)

输出描述:

一个正整数,表示最小代价的值
示例1

输入

复制
6 2 2
2 0
3 1

输出

复制
7
示例2

输入

复制
6 8 3
1 1
1 2
1 3
2 1
2 3
3 1
3 2
3 3

输出

复制
15

说明

备注: