Cod sursa(job #1296782)

Utilizator alexandra_udristoiuUdristoiu Alexandra Maria alexandra_udristoiu Data 21 decembrie 2014 15:10:23
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<fstream>
#include<algorithm>
#include<cstring>
using namespace std;
int n, i, j, nr, ok;
char a[36001][20];
int nc[36002], v[36002];
ifstream fin("restante.in");
ofstream fout("restante.out");
int cmp(int x, int y){
	int i = 0;
	while(a[x][i] == a[y][i]){
		i++;
	}
	return a[x][i] < a[y][i];
}
int main(){
	fin>> n;
	for(i = 1; i <= n; i++){
		fin>> a[i];
		nc[i] = strlen(a[i]);
		sort(a[i], a[i] + nc[i]);
		v[i] = i;
	}
	sort(v + 1, v + n + 1, cmp);
	for(i = 1; i <= n; i++){
		ok = 0;
		if(nc[v[i]] == nc[v[i+1]]){
			ok = 1;
			for(j = 0; j < nc[v[i]]; j++){
				if(a[v[i]][j] != a[v[i+1]][j]){
					ok = 0; 
					break;
				}
			}
		}
		if(ok == 1){
			i++;
		}
		else{
			ok = 0;
			if(nc[v[i]] == nc[v[i-1]]){
				ok = 1;
				for(j = 0; j < nc[v[i]]; j++){
					if(a[v[i]][j] != a[v[i-1]][j]){
						ok = 0; 
						break;
					}
				}
			}
			if(ok == 0){
				nr++;
			}
		}
	}
	fout<< nr;
	return 0;
}