func_code_string: #include <bits/stdc++.h>   using namespace std;   ifstream fin( input.txt );   ofstream fout( output.txt );   int gcd(int a, int b) {     while (a && b) a > b ? a %= b : b %= a;     return a + b;   }   int val(char c) {     if (c >=  0  && c <=  9 )       return (int)c -  0 ;     else       return (int)c -  A  + 10;   }   long long pows(int a, int b) {     long long res = 1;     for (int i = 0; i < b; ++i) {       res *= a;     }     return res;   }   long long logx(long long base, long long num) {     int cnt = 0;     while (num != 1) {       num /= base;       ++cnt;     }     return cnt;   }   long long divisibles(long long a, long long b, long long m) {     if (a % m == 0)       return (b / m) - (a / m) + 1;     else       return (b / m) - (a / m);   }   vector<int> root(100001, 0);   vector<int> size(100001, 0);   int find(int x) {     while (x != root[x]) x = root[x];     return x;   }   bool same(int a, int b) { return find(a) == find(b); }   void unite(int a, int b) {     a = find(a);     b = find(b);     if (size[a] < size[b]) swap(a, b);     size[a] += size[b];     root[b] = a;   }   vector<int> vis(100001, 0);   vector<int> adj[100001];   int main() {     std::ios::sync_with_stdio(false);     set<double> s;     double n, x, y;     cin >> n >> x >> y;     for (int i = 0; i < n; ++i) {       double a, b;       cin >> a >> b;       b = y - b;       a = x - a;       if (!a) {         s.insert(INT_MAX);         continue;       }       s.insert(b / a);     }     cout << s.size() <<   n ;   }   