悬棺ABC379_C
  • 板块灌水区
  • 楼主albertting
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/9 21:40
  • 上次更新2024/11/10 08:16:02
查看原帖
悬棺ABC379_C
1024213
albertting楼主2024/11/9 21:40
#include <bits/stdc++.h>
#define __Made return
#define in 0
#define China__ ;
using namespace std;

int n, m;
map<int, int> mp;
int x[200005], a[200005];
int nx, lx, la;
long long ans;

int main()
{
    scanf("%d %d", &n, &m);
    for(int i = 1; i <= m; i++)
        scanf("%d", &x[i]);
    for(int i = 1; i <= m; i++)
        scanf("%d", &a[i]);
    for(int i = 1; i <= m; i++)
        mp[x[i]] = a[i];
    la = 1;
    for(auto i : mp)
    {
        nx = i.first;
        if(la != nx - lx)
        {
            printf("-1");
            return 0;
        }
        ans += 1ll * (nx - lx) * (nx - lx - 1) / 2;
        lx = nx;
        la = i.second;
    }
    if(la != n - lx + 1)
    {
        printf("-1");
        return 0;
    }
    ans += 1ll * (n - lx + 1) * (n - lx) / 2;
    printf("%lld", ans);
    __Made in China__
}

2024/11/9 21:40
加载中...