Language: C++

/// Coded by Dhiman Sarker Bappi (Dhimanda) - RMSTU

#include<bits/stdc++.h>
using namespace std;
#define    in_file     freopen("input.txt", "r", stdin)
#define    out_file    freopen("output.txt", "w", stdout)
#define    fast        ios_base :: sync_with_stdio(0), cin.tie(0), cout.tie(0)
#define    F           first
#define    S           second
#define    pb          push_back
#define    popb        pop_back
#define    pf          push_front
#define    popf        pop_front
#define    lcm(a,b)    (a*b)/gcd(a,b)
#define    gcd(a,b)    __gcd(a,b)
#define    pi          2*acos(0)
#define    elif        else if
#define    ll          long long
#define    nl          '\n'
#define    endl        '\n'
#define    fori(i,b,e) for(int (i)=(b); (i) <= (e); (i)++)
#define    for0(i,n)   for(int (i)=0; (i) < (n); (i)++)

// ===================== custom function ==========================

ll pow_mod(ll nn, ll pp, ll mm) { ll res = 1; while(pp > 0) { if(pp&1) res = (res * nn) % mm; pp = pp >> 1; nn = (nn * nn) % mm; } return res; }
class stdout_cus
{
    short float_prec = 7;
public:
    inline stdout_cus operator<<(const int& arg){ printf("%d",arg); return *this; }
    inline stdout_cus operator<<(const short& arg){ printf("%d",arg); return *this; }
    inline stdout_cus operator<<(const bool& arg){ printf("%d",arg); return *this; }
    inline stdout_cus operator<<(const unsigned int& arg){ printf("%u",arg); return *this; }
    inline stdout_cus operator<<(const unsigned short& arg){ printf("%u",arg); return *this; }
    inline stdout_cus operator<<(const long long& arg){ printf("%lld",arg); return *this; }
    inline stdout_cus operator<<(const unsigned long long& arg){ printf("%llu",arg); return *this; }
    inline stdout_cus operator<<(const double& arg){ printf("%.*f",float_prec,arg); return *this; }
    inline stdout_cus operator<<(const float& arg){ printf("%.*f",float_prec,arg); return *this; }
    inline stdout_cus operator<<(const char& arg){ printf("%c",arg); return *this; }
    inline stdout_cus operator<<(const unsigned char& arg){ printf("%c",arg); return *this; }
    inline stdout_cus operator<<(const char* arg){ printf("%s",arg); return *this; }
    inline stdout_cus operator<<(const std::string& arg){ printf("%s",arg.c_str()); return *this; }
    inline stdout_cus operator<<(const stdout_cus&){ return *this; }
    inline void ignore() { fflush(stdout); }
    inline stdout_cus precision(short prec) { float_prec = prec; return *this; }
}cout_cus;
class stdin_cus
{
public:
    inline stdin_cus operator>>(const int& arg){ scanf(" %d",&arg); return *this; }
    inline stdin_cus operator>>(const short& arg){ scanf(" %d",&arg); return *this; }
    inline stdin_cus operator>>(const bool& arg){ scanf(" %d",&arg); return *this; }
    inline stdin_cus operator>>(const unsigned int& arg){ scanf(" %u",&arg); return *this; }
    inline stdin_cus operator>>(const unsigned short& arg){ scanf(" %u",&arg); return *this; }
    inline stdin_cus operator>>(const long long& arg){ scanf(" %lld",&arg); return *this; }
    inline stdin_cus operator>>(const unsigned long long& arg){ scanf(" %llu",&arg); return *this; }
    inline stdin_cus operator>>(const double& arg){ scanf(" %lf",&arg); return *this; }
    inline stdin_cus operator>>(const float& arg){ scanf(" %f",&arg); return *this; }
    inline stdin_cus operator>>(const char& arg){ scanf(" %c",&arg); return *this; }
    inline stdin_cus operator>>(const unsigned char& arg){ scanf(" %c",&arg); return *this; }
    inline stdin_cus operator>>(const char* arg){ scanf(" %s",arg); return *this; }
    inline stdin_cus operator>>(std::string& arg){ char tmp[1000000]; scanf(" %s",tmp); arg = tmp; return *this; }
    inline void ignore() { fflush(stdin); }
}cin_cus;
#define    cout        cout_cus
#define    cin         cin_cus
#define    sp          cout_cus.precision
void dhimanda();
// ===================== Main function ==========================
int main()
{
    //in_file;
    //out_file;
    int t=1;
    //cin >> t;
    fori(i,1,t){
        //printf("Case %d: ", i);
        dhimanda();
    }
    return 0;
}
void dhimanda(){
    ll n;
    cin >> n ;
    map < string , int > m;
    m.clear();
    while(n--) {
        string s;
        cin >> s;
        m[s]++;
    }
    cout << m.size() <<endl;

}

// Contact : chessdhiman@gmail.com


Compiler output:
a.cc: In function 'void dhimanda()':
a.cc:93:10: error: ambiguous overload for 'operator<<' (operand types are 'stdout_cus' and 'std::map<std::__cxx11::basic_string<char>, int>::size_type' {aka 'long unsigned int'})
   93 |     cout << m.size() <<endl;
      |          ^~ ~~~~~~~~
      |                   |
      |                   std::map<std::__cxx11::basic_string<char>, int>::size_type {aka long unsigned int}
a.cc:31:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const int&)'
   31 |     inline stdout_cus operator<<(const int& arg){ printf("%d",arg); return *this; }
      |                       ^~~~~~~~
a.cc:32:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const short int&)'
   32 |     inline stdout_cus operator<<(const short& arg){ printf("%d",arg); return *this; }
      |                       ^~~~~~~~
a.cc:33:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const bool&)'
   33 |     inline stdout_cus operator<<(const bool& arg){ printf("%d",arg); return *this; }
      |                       ^~~~~~~~
a.cc:34:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const unsigned int&)'
   34 |     inline stdout_cus operator<<(const unsigned int& arg){ printf("%u",arg); return *this; }
      |                       ^~~~~~~~
a.cc:35:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const short unsigned int&)'
   35 |     inline stdout_cus operator<<(const unsigned short& arg){ printf("%u",arg); return *this; }
      |                       ^~~~~~~~
a.cc:36:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const long long int&)'
   36 |     inline stdout_cus operator<<(const long long& arg){ printf("%lld",arg); return *this; }
      |                       ^~~~~~~~
a.cc:37:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const long long unsigned int&)'
   37 |     inline stdout_cus operator<<(const unsigned long long& arg){ printf("%llu",arg); return *this; }
      |                       ^~~~~~~~
a.cc:38:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const double&)'
   38 |     inline stdout_cus operator<<(const double& arg){ printf("%.*f",float_prec,arg); return *this; }
      |                       ^~~~~~~~
a.cc:39:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const float&)'
   39 |     inline stdout_cus operator<<(const float& arg){ printf("%.*f",float_prec,arg); return *this; }
      |                       ^~~~~~~~
a.cc:40:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const char&)'
   40 |     inline stdout_cus operator<<(const char& arg){ printf("%c",arg); return *this; }
      |                       ^~~~~~~~
a.cc:41:23: note: candidate: 'stdout_cus stdout_cus::operator<<(const unsigned char&)'
   41 |     inline stdout_cus operator<<(const unsigned char& arg){ printf("%c",arg); return *this; }
      |                       ^~~~~~~~