AcWing 101. 最高的牛
原题链接
简单
package 差分;
import java.util.Scanner;
public class HighestNiu {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();//牛的个数
int p=sc.nextInt();//第几头牛最高
int h=sc.nextInt();//最高的牛高度
int m=sc.nextInt();//关系的对数
int[] guanxi=new int[100];//看是否处理过了
int[] B=new int [100];//差分数组
while (m-->0){
int a=sc.nextInt();
int b=sc.nextInt();
if(a>b){
int temp=a;
a=b;
b=temp;
}
if(guanxi[a]!=b) {
B[a+1]-=1;
B[b]+=1;
guanxi[a]=b;
}
}
for (int i=1;i<=n;i++){
B[i]=B[i-1]+B[i];//每头牛矮多少
}
for (int i = 1; i <=n; i++) {
int res=h+B[i];
System.out.println("第"+i+"头牛的高度是"+res);
}
}
}