最长子序列
这题把每个城市的生活费和花费得到一个新的序列,然后可以转换成求这个新序列的 最长子序列的和的长度 !
AC代码:
#include <stdio.h>
int dp[100005];
int main()
{
int i,n,a,b,sum,cnt,max;
while (scanf("%d",&n)!=EOF)
{
for (i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
dp[i]=a-b;
}
sum=0;
cnt=0;
max=-1;
for (i=0;i<2*n-1;i++)
{
sum+=dp[i%n];
if(sum>=0)
{
cnt++;
if(max<cnt) max=cnt;
if(cnt==n) break;
}
else
{
sum=0;
cnt=0;
}
}
printf("%d\n",max);
}
return 0;
}