Pagini recente » Cod sursa (job #2025168) | Cod sursa (job #282473) | Cod sursa (job #2724048) | Cod sursa (job #100922) | Cod sursa (job #1972277)
#include <cstdio>
#include <ctype.h>
#include <algorithm>
struct Word {
char ch[16];
} v[36000];
bool cmp(Word a, Word b) {
int i = 0;
while(i < 16 && a.ch[i] == b.ch[i])
++i;
return i < 16 && (a.ch[i] < b.ch[i]);
}
bool egale(Word a, Word b) {
int i = 0;
while(i < 16 && a.ch[i] == b.ch[i])
++i;
return i == 16;
}
char getch(FILE *fin) {
char ch = fgetc(fin);
while(ch == ' ' || ch == '\n')
ch = fgetc(fin);
return ch;
}
int main() {
int n, r = 0;
char ch;
FILE *fin = fopen("restante.in", "r");
fscanf(fin, "%d", &n);
for(int i = 0; i < n; ++i) {
ch = getch(fin);
int t = 0;
while(isalpha(ch)) {
v[i].ch[t++] = ch;
ch = fgetc(fin);
}
std::sort(v[i].ch, v[i].ch + t);
}
fclose(fin);
std::sort(v, v + n, cmp);
for(int i = 1; i < n - 1; ++i)
if(!egale(v[i], v[i + 1]) && !egale(v[i - 1], v[i]))
r++;
if(n > 1 && !egale(v[0], v[1]))
r++;
if(n > 2 && !egale(v[n - 1], v[n - 2]))
r++;
FILE *fout = fopen("restante.out", "w");
fprintf(fout, "%d", r);
fclose(fout);
return 0;
}