fork(11) download
  1. var cnt:array[-10000000..10000000] of integer;
  2. dp:array[0..1000000] of integer;
  3. currNum, N, i:integer;
  4. ans:int64;
  5. begin
  6. read(N);
  7. for i := 0 to N - 1 do begin
  8. read(currNum);
  9. if (i <> 0) then dp[i] := dp[i - 1];
  10. dp[i] := dp[i] + currNum;
  11. ans := ans + cnt[dp[i] + 1];
  12. ans := ans + cnt[dp[i] - 1];
  13. if (dp[i] = -1) or (dp[i] = 1) then ans := ans + 1;
  14. cnt[dp[i]] := cnt[dp[i]] + 1;
  15. end;
  16. writeln(ans);
  17. end.
Success #stdin #stdout 0s 41296KB
stdin
Standard input is empty
stdout
0