#include <iostream> #include <algorithm> #include <string> #include <cstdio> #include <cstdlib> #include <stack> #include <vector> #include <functional> #include <bits/stdc++.h> #include <sstream> #include <iomanip> #include <cmath> #include <cctype> #include <bitset> using namespace std; vector <int> liczby; vector <int> ciag; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int ile, liczba; int zera=1, dodatnie=1; int ile_trojek; cin >> ile; for (int n=1; n<=ile; n++) { cin >> liczba; liczby.push_back(liczba); } //for (int n=0; n<ile; n++) // cout << liczby[n] << endl; //cout << endl; int ile_c=0; for (int n=0; n<ile; n++) { int suma=liczby[n]; ciag.push_back(suma); if (suma!=0) zera=0; if (suma<=0) dodatnie=0; // cout << suma << endl; for (int k=n+1; k<ile; k++) { suma=suma+liczby[k]; ciag.push_back(suma); if (suma!=0) zera=0; if (suma<=0) dodatnie=0; // cout << suma << endl; } } if (zera==1) { ile_trojek=(ile*(ile+1))/2; ile_trojek=((ile_trojek-2)*(ile_trojek-1)*(ile_trojek))/6; cout << ile_trojek; } else if (dodatnie==1) cout <<0; else { ile_trojek=0; int suma=0; for (int i = 0; i < ciag.size() - 2; i++) { for (int j = i + 1; j < ciag.size() - 1; j++) { for (int k = j + 1; k < ciag.size(); k++) { if (ciag[i] + ciag[j] + ciag[k] == suma) { // cout << "Trojka " << ciag[i] << ", " << ciag[j] << ", " << ciag[k]; // cout << endl; ile_trojek=ile_trojek+1; } } } } cout << ile_trojek; } return 0; }
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 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | #include <iostream> #include <algorithm> #include <string> #include <cstdio> #include <cstdlib> #include <stack> #include <vector> #include <functional> #include <bits/stdc++.h> #include <sstream> #include <iomanip> #include <cmath> #include <cctype> #include <bitset> using namespace std; vector <int> liczby; vector <int> ciag; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int ile, liczba; int zera=1, dodatnie=1; int ile_trojek; cin >> ile; for (int n=1; n<=ile; n++) { cin >> liczba; liczby.push_back(liczba); } //for (int n=0; n<ile; n++) // cout << liczby[n] << endl; //cout << endl; int ile_c=0; for (int n=0; n<ile; n++) { int suma=liczby[n]; ciag.push_back(suma); if (suma!=0) zera=0; if (suma<=0) dodatnie=0; // cout << suma << endl; for (int k=n+1; k<ile; k++) { suma=suma+liczby[k]; ciag.push_back(suma); if (suma!=0) zera=0; if (suma<=0) dodatnie=0; // cout << suma << endl; } } if (zera==1) { ile_trojek=(ile*(ile+1))/2; ile_trojek=((ile_trojek-2)*(ile_trojek-1)*(ile_trojek))/6; cout << ile_trojek; } else if (dodatnie==1) cout <<0; else { ile_trojek=0; int suma=0; for (int i = 0; i < ciag.size() - 2; i++) { for (int j = i + 1; j < ciag.size() - 1; j++) { for (int k = j + 1; k < ciag.size(); k++) { if (ciag[i] + ciag[j] + ciag[k] == suma) { // cout << "Trojka " << ciag[i] << ", " << ciag[j] << ", " << ciag[k]; // cout << endl; ile_trojek=ile_trojek+1; } } } } cout << ile_trojek; } return 0; } |