CSES - Datatähti 2020 alku - Results
Submission details
Task:Merkkijonot
Sender:intoo
Submission time:2019-09-30 11:26:20 +0300
Language:C++17
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:20:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < s.size(); i++) {
                   ~~^~~~~~~~~~
input/code.cpp:24:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < m.size(); i++) {
                   ~~^~~~~~~~~~
input/code.cpp:26:14: error: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<std::vector<int>, int> > >::value_type {aka struct std::pair<std::vector<int>, int>}' has no member named 'push_back'
    else m[i].push_back({z, 1});
              ^~~~~~~~~
input/code.cpp:29:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int i = 0; i < m.size(); i++) {
                  ~~^~~~~~~~~~
input/code.cpp:31:12: error: no match for 'operator-' (operand types are 'std::vector<std::pair<std::vector<int>, int> >' and 'int')
   c += m*(m-1)/2;
           ~^~...

Code

#include <iostream>
#include <vector>
#include <set>

using namespace std;

int t[101010][26];

vector<pair<vector<int>, int>> m;
//multiset<vector<int>> m;

int main() {
	int n, c = 0;
	cin >> n;
	string s;
	for (int k = 0; k < n; k++) {
		cin >> s;
		vector<int> z;
		int x = 1;
		for (int i = 0; i < s.size(); i++) {
			if (!t[k][s[i]-65]) t[k][s[i]-65] = x++;
			z.push_back(t[k][s[i]-65]);
		}
		for (int i = 0; i < m.size(); i++) {
			if (m[i].first == z) m[i].second++;
			else m[i].push_back({z, 1});
		}
	}
	for (int i = 0; i < m.size(); i++) {
		int n = m[i].second;
		c += m*(m-1)/2;
	}
	cout << c << endl;
}