1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>

#include <algorithm>

int ulubione[500];
int bardzo_ulubione[250 * 501];
int
main ()
{
  std::ios_base::sync_with_stdio (false);
  std::cin.tie (NULL);
  std::cout.tie (NULL);

  long ile_liczb_ulubionych;
  long ile_liczb_bardzo_ulubionych;

  int i, j, k;

  std::cin >> ile_liczb_ulubionych;
  ile_liczb_bardzo_ulubionych =
	ile_liczb_ulubionych * (ile_liczb_ulubionych + 1) / 2;

  for (i = 0; i < ile_liczb_ulubionych; i++)
	std::cin >> ulubione[i];

  int ktory_bardzo_ulubiony = 0;
  int suma;

  for (i = 0; i < ile_liczb_ulubionych; i++)
	{
	  suma = 0;
	  for (j = i; j < ile_liczb_ulubionych; j++)
		{
		  suma += ulubione[j];
		  bardzo_ulubione[ktory_bardzo_ulubiony] = suma;

		  ktory_bardzo_ulubiony++;
		}
	}

/*  for (i = 0; i < ile_liczb_bardzo_ulubionych; i++)
	std::cout << bardzo_ulubione[i] << " ";
  std::cout << "\n";
*/
  std::sort (bardzo_ulubione, bardzo_ulubione + ile_liczb_bardzo_ulubionych);
  long ile=0;

  for (i = 0; i < ile_liczb_bardzo_ulubionych; i++)
	{
	 if(bardzo_ulubione[i] <=0)
	  for (j = i + 1; j < ile_liczb_bardzo_ulubionych; j++)
		{
		    if(bardzo_ulubione[i]+ bardzo_ulubione[j]<=0)
		    {
		        if (bardzo_ulubione[i]+ bardzo_ulubione[j]<=0)
		        {
		            for (k = j + 1; k <ile_liczb_bardzo_ulubionych; k++)
		            {
		                if (bardzo_ulubione[i]+ bardzo_ulubione[j]+ bardzo_ulubione[k]==0)
		                    ile++;
		            }
		        }
		    }
	    }
	}
	std:: cout << ile;

	return 0;
}