• Source
    1. #include<bits/stdc++.h>
    2.  
    3. using namespace std;
    4.  
    5. const int NX = 1e5+10;
    6.  
    7. int dp[NX],N,S;
    8.  
    9. void solve()
    10. {
    11. int sum,low,high,ans = N+1;
    12.  
    13. sum = dp[0];
    14.  
    15. low=high = 0;
    16.  
    17. while(high<N)
    18. {
    19. if(sum>=S)
    20. {
    21. ans = min(ans,high-low+1);
    22. }
    23.  
    24. if(sum>=S && low<high)
    25. {
    26. sum-=dp[low];
    27.  
    28. low++;
    29. }
    30. else
    31. {
    32. high++;
    33.  
    34. if(high<N)
    35. sum+=dp[high];
    36. }
    37. }
    38.  
    39. printf("%d\n",ans==N+1?0:ans);
    40.  
    41. return;
    42. }
    43.  
    44. int main()
    45. {
    46. int i,j;
    47.  
    48. while(scanf("%d%d",&N,&S)!=EOF)
    49. {
    50. for(i=0;i<N;i++)
    51. {
    52. scanf("%d",&dp[i]);
    53. }
    54.  
    55. solve();
    56. }
    57.  
    58. return 0;
    59. }
    60.