func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class S, class T>   pair<S, T> operator+(const pair<S, T> &s, const pair<S, T> &t) {     return pair<S, T>(s.first + t.first, s.second + t.second);   }   template <class S, class T>   pair<S, T> operator-(const pair<S, T> &s, const pair<S, T> &t) {     return pair<S, T>(s.first - t.first, s.second - t.second);   }   template <class S, class T>   ostream &operator<<(ostream &os, pair<S, T> p) {     os <<  (  << p.first <<  ,   << p.second <<  ) ;     return os;   }   template <class T>   bool chmax(T &a, const T &b) {     if (a < b) {       a = b;       return 1;     }     return 0;   }   template <class T>   bool chmin(T &a, const T &b) {     if (a > b) {       a = b;       return 1;     }     return 0;   }   const long long inf = 1000000001;   const long long INF = 2e18;   const long long MOD = 1000000007;   const double pi = 3.14159265358979323846;   int dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};   int dx2[8] = {1, 1, 0, -1, -1, -1, 0, 1}, dy2[8] = {0, 1, 1, 1, 0, -1, -1, -1};   int main() {     int n;     cin >> n;     vector<int> a(n);     for (long long i = 0; i < (long long)(n); i++) {       cin >> a[i];     }     set<int> st;     st.insert(0);     for (long long i = 0; i < (long long)(n); i++) {       st.insert(a[i]);     }     cout << (int)st.size() - 1 << endl;   }   