nyist 590 相同的和

http://acm.nyist.net/JudgeOnline/problem.php?pid=590
描述

给出一些数a1,a2,a3,a4.....,an,如果一个连续的字串的和等于常数m,那么这个子串就是我们想要的,那么问题很简单,请求出这样字串的个数?

例如:3,4,1,6,2,5,m的值为7时,连续字串分别为{3,4},{1,6},{2,5}满足

输入
每种情况,第一行2个数n,m,n表示有多少个数,m是常数(有多组测试数据)
第二行是n个数的值 (所有的数小于1000)
输出
每种情况个数
input:
5 6
4 2 4 3 3
5 7
4 2 3 2 7
output:
2
2
代码:
#include<stdio.h>
#define N 100000
int a[N];
int main()
{
    int n,m;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        int i,j;
        for(i =0; i < n; i++ )
           scanf("%d",&a[i]);
        int t = 0, s = 0;
        for( j = 0; j < n;  )
        for(i = j; i < n; i++ ) {
              s += a[i];
              if(s==m)
                 {
                     t++;
                     s = 0;
                     j = i + 1;
                     break;
                 }
            else if(s > m) {s = 0; j++; break;}
        }
           printf("%d\n",t);
    }
    return 0;
}

posted @ 2012-11-22 21:30  heity  阅读(540)  评论(0编辑  收藏  举报