func_code_string: #include <bits/stdc++.h>   using namespace std;   long long dx[] = {1, 0, -1, 0};   long long dy[] = {0, 1, 0, -1};   long long gcd(long long x, long long y) {     if (y == 0)       return x;     else       return gcd(y, x % y);   }   long long expo(long long n, long long m, long long p) {     long long r = 1;     n = n % p;     while (m > 0) {       if (m % 2) r = (r * n) % p;       n = (n * n) % p;       m = m / 2;     }     return r % p;   }   bool isPrime(long long n) {     if (n <= 1) return false;     if (n <= 3) return true;     if (n % 2 == 0 || n % 3 == 0) return false;     for (long long i = 5; i * i <= n; i = i + 6)       if (n % i == 0 || n % (i + 2) == 0) return false;     return true;   }   int32_t main() {     ios::sync_with_stdio(0);     cin.tie(0);     cout.tie(0);     ;     long long n;     cin >> n;     map<double, long long> p;     vector<string> v(n);     for (long long j = 0; j < n; j++) {       string s;       cin >> s;       v[j] = s;       long long a = 0, b = 0, c = 0;       long long i = 1;       while (s[i] !=  + ) {         a = a * 10 + s[i] -  0 ;         i++;       }       i++;       while (s[i] !=  ) ) {         b = b * 10 + s[i] -  0 ;         i++;       }       i++;       i++;       while (i != s.size()) {         c = c * 10 + s[i] -  0 ;         i++;       }       double aa = (a * 1.0 + b) / c;       p[aa]++;     }     for (long long j = 0; j < n; j++) {       string s = v[j];       long long a = 0, b = 0, c = 0;       long long i = 1;       while (s[i] !=  + ) {         a = a * 10 + s[i] -  0 ;         i++;       }       i++;       while (s[i] !=  ) ) {         b = b * 10 + s[i] -  0 ;         i++;       }       i++;       i++;       while (i != s.size()) {         c = c * 10 + s[i] -  0 ;         i++;       }       double aa = (a * 1.0 + b) / c;       cout << p[aa] <<    ;     }     cout <<   n ;   }   