AcWing 101. 最高的牛
原题链接
简单
作者:
Aleia
,
2024-10-08 15:14:40
,
所有人可见
,
阅读 1
#include <iostream>
#include <map>
using namespace std;
const int N = 10010;
int c[N];//原始数组
int d[N];//差分数组,由于初始元素是0,所以差分值也是0,直接定义数组使用即可
map<pair<int,int>,bool> existed;
int main()
{
int n,p,h,m;
cin>>n>>p>>h>>m;
while(m--)
{
int a,b;
cin>>a>>b;
if(a>b) swap(a,b);
if(existed[make_pair(a,b)]) continue;//判重
d[a+1]--, d[b]++;//身高差距至少小1
existed[make_pair(a,b)] = true;
}
for(int i=1;i<=n;i++)
{
c[i] = c[i-1] + d[i];
cout<<h+c[i]<<endl;
}
return 0;
}