문제 설명 https://www.acmicpc.net/problem/1806 소스 코드 O(N)에 풀면 되므로 투 포인터 알고리즘을 통해 입력과 동시에 수행. #include #include using namespace std; int main(int argc, char** argv) { ios_base :: sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, s, p1=0, p2=0, sum=0, m=1e9; cin >> n >> s; vector v(n); while(p2 < n || sum >= s) { if (sum < s) { cin >> v[p2]; sum += v[p2++]; } else if (p1 < p2) { m = min(m, p2-p1); sum -= v[p1++]; } } cout << (m == 1e9 ?
"0" : m) << endl; return 0; }...
원문 링크 : 부분합