CSES - Datatähti 2020 alku - Results
Submission details
Task:Merkkijonot
Sender:jusola
Submission time:2019-10-02 21:11:34 +0300
Language:C++ (C++11)
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'bool isPair(std::__cxx11::string, std::__cxx11::string)':
input/code.cpp:32:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < a.length() + 1; i++){
                   ~~^~~~~~~~~~~~~~~~
input/code.cpp:34:12: error: no match for 'operator<<' (operand types are 'std::ostream {aka std::basic_ostream<char>}' and 'std::map<char, char>::iterator {aka std::_Rb_tree_iterator<std::pair<const char, char> >}')
       cout << mapA.find(arrA[i]);
       ~~~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/7/iostream:39:0,
                 from input/code.cpp:1:
/usr/include/c++/7/ostream:108:7: note: candidate: std::basic_ostream<_CharT, _Traits>::__ostream_type& std::basic_ostream<_CharT, _Traits>::operator<<(std::basic_ostream<_CharT, _Traits>::__ostream_type& (*)(std::basic_ostream<_CharT, _Traits>::__ostream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_ostream<_...

Code

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string>
#include <algorithm>
#include <iterator>
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
const string alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char alphabetArr[52];
bool isPair(string a, string b){
map<char, char> mapA;
map<char, char> mapB;
std::map<char, char>::iterator it;
char arrA[a.length() + 1];
char arrB[b.length() + 1];
string newA;
string newB;
strcpy(arrA, a.c_str());
strcpy(arrB, b.c_str());
for (int i = 0; i < a.length() + 1; i++){
if(mapA.find(arrA[i]) != mapA.end()){
cout << mapA.find(arrA[i]);
newA = newA + std::string(1, 'a');
}else{
newA = newA + std::string(1, 'a');
mapA.insert(std::pair<char,char>(alphabetArr[mapA.size()], end(mapA)));
}
}
for (int i = 0; i < b.length() + 1; i++){
it = mapB.find(arrB[i]);
if(it != mapB.end()){
newB += string(1, 'a');
}else{
newB += string(1, 'a');
mapB.insert(alphabetArr[mapB.size()], mapB.end());
}
}
}
int main(){
int num;
int amount = 0;
cin >> num;
strcpy(alphabetArr, alphabet.c_str());
string arr[num];
for (int i = 0; i < num; i++){
cin >> arr[i];
}
for (int i = 0; i < num; i++){
for (int j = 0; j < num; j++){
if(isPair(arr[i], arr[j])){
amount++;
}
}
}
cout << amount/2; //Jaetaan kahdella, koska jokainen käydään läpi 2 kertaa
return 0;
}