http://acm.hdu.edu.cn/showproblem.php?pid=4252
开始想得比较复杂,暴力搜索过了(离散化)
import java.util.Scanner;
public class CityBuild{
int n;
int a[];
boolean flage[];
int ans = 0;
public void solve(){
Scanner sc = new Scanner(System.in);
int x=1;
while(sc.hasNext()){
n = sc.nextInt();
a = new int[n+1]; flage = new boolean[n+1];
ans = 0;
for(int i=1; i<=n; i++){
a[i] = sc.nextInt();
if(a[i] ==0)
flage[i] = true;
}
for(int i=1; i<=n; i++){
if( flage[i] || a[i]==0)
continue;
int t = a[i];
for(int j=i+1; j<=n; j++){
if(a[j] == t)
flage[j] = true;
else if( a[j] < t)
break;
}
}
for(int i=1; i<=n ; i++){
if( !flage[i]) ans ++;
}
System.out.println("Case "+(x)+": "+ans);
x++;
}
}
public static void main(String[] args) {
new CityBuild().solve();
}
}