题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1422
3 3 2 3 4 2 2 3 3 2 3 4 2 3
3 2
简单不解释,直接上代码
#include <stdio.h>
#define MAX 200002
int n;
int city[MAX];
int MaxNumOfCity(){
int i, money, max, nCity;
money = -1;
max = 0;
for (i = 0; i < 2 * n; ++i){
if (money < 0){
money = 0;
nCity = 0;
}
else{
++nCity;
if (nCity > max){
max = nCity;
if (max >= n)
return n;
}
}
money += city[i];
}
return max;
}
int main(void){
int w;
int l;
int i;
while (scanf("%d", &n) != EOF){
for (i = 0; i < n; ++i){
scanf("%d%d", &w, &l);
city[i] = w - l;
city[i + n] = w - l;
}
printf("%d\n", MaxNumOfCity());
}
return 0;
}HDOJ 1422 重温世界杯 -- 动态规划,布布扣,bubuko.com
原文:http://blog.csdn.net/jdplus/article/details/20124301