Pagini recente » Cod sursa (job #2675477) | Cod sursa (job #2858333) | Cod sursa (job #662245) | Cod sursa (job #1934633) | Cod sursa (job #340368)
Cod sursa(job #340368)
#include <iostream>
#include <fstream>
#include <map>
#include <algorithm>
using namespace std;
#define N 36001
struct ltstr{
bool operator()(const char* s1, const char* s2)const {
if( strcmp(s1, s2)<0 ) return 1;
return 0;
}
};
ifstream inFile;
ofstream outFile;
map<char*, int, ltstr> words; // red black tree
int n;
int main() {
char* str;
inFile.open("restante.in",ios::in);
outFile.open("restante.out",ios::out);
if (inFile.is_open() == 0) {
cerr<<"Unable to open file for input.";
exit(1);
}
if (outFile.is_open() == 0) {
cerr<<"Unable to open file for output.";
exit(1);
}
inFile>>n;
for (int i=1; i<=n; i++) {
str=new char(17);
for(int j = 0; j < 17; ++j) str[j] = 0;
inFile>>str;
sort(str+0, str+strlen(str));
words[str]++;
}
int nr=0;
for(map<char*, int, ltstr>::iterator ii=words.begin(); ii!=words.end(); ++ii) {
if (ii->second == 1)
nr++;
}
outFile<<nr;
inFile.close();
outFile.close();
words.clear();
return 0;
}