[题目传送](https://ac.nowcoder.com/acm/contest/4853/B)

> 时间限制:C/C++ 1秒,其他语言2秒
> 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format:%lld

题目描述

输入描述:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200327234129389.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM1OTc1MzY3,size_16,color_FFFFFF,t_70)输入描述

> 第一行一个整数表示n. 接下来n行每行两个整数x,y表示一个点.

输出描述:

> 输出一个整数表示周长和.

示例1
输入

```bash
3
0 0
1 0
1 1
```
输出
```bash
4
```
备注:

3≤n≤1e3
−1e9≤x,y≤1e9
**题解:**
又到了找规律的时间:
n个点构成C^3^n个三角形,注意由没有三点共线,说明任意三个点都可以构成三角形
比如有n个点,现将每两点之间的马哈顿距离算出来,并求出总值sum。
然后构建三角形,选取两个点A和B,那第三个点就可以从剩下(n-2)个点里找,也就是有(n-2)个选择 ,那A与B之间的这个边就被用了(n-2)次,然后另外两个点,再这样操作。你会发现每个边都被用了(n-2)次
所以最后结果就是sum*(n-2)

千万不要忘了  **mod**
***代码:***
```bash
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=998244353;
ll a[1004];
ll b[1004];
ll w(ll x1,ll y1,ll x2,ll y2)
{
    return abs(x2-x1)+abs(y2-y1);
}
int main()
{
    int n;
    ll sum=0;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i]>>b[i];
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            sum=(sum+w(a[i],b[i],a[j],b[j]))%mod;
        }
    }
    cout<<sum*(n-2)%mod;
    return 0;
}
```