Language: C++

#include <bits/stdc++.h>
using namespace std;

int main(){
  long N; cin >> N;
  long count =1, ANS =0;
  string s[N];
  
  for(int i=0; i<N; i++){
    cin >> s[i];
    sort(s[i].begin, s[i].end())
  }
  
  sort(s.begin(), s.end());
  
  for(int i=0; i<N-1; i++){
    if(s[i] == s[i+1]){
      count++;}
    else{ANS += (count * (count - 1))/2;
        count = 1; }
  }
  
  if(count!=1){ANS += (count * (count - 1))/2;}
  
  cout << ANS << endl;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:11:9: error: no matching function for call to 'sort(<unresolved overloaded function type>, std::__cxx11::basic_string<char>::iterator)'
   11 |     sort(s[i].begin, s[i].end())
      |     ~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/algorithm:61,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_algo.h:4762:5: note: candidate: 'void std::sort(_RAIter, _RAIter) [with _RAIter = __gnu_cxx::__normal_iterator<char*, __cxx11::basic_string<char> >]'
 4762 |     sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |     ^~~~
/usr/include/c++/14/bits/stl_algo.h:4762:32: note:   no known conversion for argument 1 from '<unresolved overloaded function type>' to '__gnu_cxx::__normal_iterator<char*, std::__cxx11::basic_string<char> >'
 4762 |     sort(_RandomAccessIterator __first, _RandomAccessIterator __last)
      |          ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
/usr/include/c++/14/bits/stl_algo.h:4793:5: note: candidate: 'template<class _RAIter, class _Compare> void std::sort(_RAIter, _RAIter, _Compare)'
 4793 |     sort(_RandomAccessIterator __first, _RandomAccessIterator __last,
      |     ^~~~
/usr/include/c++/14/bits/stl_algo.h:4793:5: note:   candidate expects 3 arguments, 2 provided
In file included from /usr/include/c++/14/algorithm:86:
/usr/include/c++/14/pstl/glue_algorithm_defs.h:292:1: note: candidate: 'template<class _ExecutionPolicy, class _RandomAccessIterator, class _Compare> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> std::sort(_ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator, _Compare)'
  292 | sort(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp);
      | ^~~~
/usr/include/c++/14/pstl/glue_algorithm_defs.h:292:1: note:   candidate expects 4 arguments, 2 provided
/usr/include/c++/14/pstl/glue_algorithm_defs.h:296:1: note: candidate: 'template<class _ExecutionPolicy, class _RandomAccessIterator> __pstl::__internal::__enable_if_execution_policy<_ExecutionPolicy, void> std::sort(_ExecutionPolicy&&, _RandomAccessIterator, _RandomAccessIterator)'
  296 | sort(_ExecutionPolicy&& __exec, _RandomAccessIterator __first, _RandomAccessIterator __last);
      | ^~~~
/usr/include/c++/14/pstl/glue_algorithm_defs.h:296:1: note:   candidate expects 3 arguments, 2 provided
a.cc:14:10: error: request for member 'begin' in 's', which is of non-class type 'std::string [N]' {aka 'std::__cxx11::basic_string<char> [N]'}
   14 |   sort(s.begin(), s.end());
      |          ^~~~~
a.cc:14:21: error: request for member 'end' in 's', which is of non-class type 'std::string [N]' {aka 'std::__cxx11::basic_string<char> [N]'}
   14 |   sort(s.begin(), s.end());
      |                     ^~~