$O(n)$
inchworm algorithm을 이용한다.
#include<cstdio> int n, m, r, h, a[10000], s; int main() { scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) { scanf("%d", a + i); s += a[i]; while (s > m) s -= a[h++]; r += s == m; } printf("%d", r); return 0; }
#include<cstdio> int n, m, r, h, a[10000], s; int main() { scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) { scanf("%d", a + i); s += a[i]; while (s > m) s -= a[h++]; r += s == m; } printf("%d", r); return 0; }
댓글 없음 :
댓글 쓰기