烤烤毕业之后回家乡养起了奶牛!目前有N(1 ≤ N ≤ 10,000) 头奶牛,他们按照1-n编号并站成一排。每头奶牛都有一个正整数的高度,烤烤知道最高的奶牛的高度H (1 ≤ H ≤ 1,000,000)和他所在位置编号I。(注意最高的奶牛不止一头,I只是其中之一)
烤烤给了你一个R (0 ≤ R ≤ 10,000)行的列表,每行给出A,B,这表示A,B奶牛之间的所有奶牛要严格小于A和B奶牛的高度。
现让你求出每头奶牛最大的高度。(注意给出的AB有可能重复)
Input
第1行: 空格隔开的四个整数:N, I, H , R
第2行--R+1行: 每行输入 A 和 B (1 ≤ A, B ≤ N)
Output
第1行--第n行:行 i 包含一个 i 位置奶牛有可能的最大高度
Sample Input
9 3 5 5
1 3
5 3
4 3
3 7
9 8
Sample Output
5
4
5
3
4
4
5
5
5
#include<iostream>
using namespace std;
int d[10005],n,L,R,m,ii,a;
bool vis[10005][10005];
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>ii>>d[1]>>m;
while(m--){
cin>>L>>R;
if(L>R)swap(L,R);
if(vis[L][R])continue;
d[L+1]--;
d[R]++;
vis[L][R]=true;
}
for(int i=1;i<=n;i++){
a+=d[i];
cout<<a<<"\n";
}
return 0;
}
注:使用万能头亦可