Cod sursa(job #374419)

Utilizator titusuTitus C titusu Data 16 decembrie 2009 23:32:04
Problema Restante Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
using namespace std;
#include <algorithm>
#include <fstream>
#include <iostream>
#include <cstring>

int N;
char a[36005][20];

void qs(int st,int dr){
	if(st<dr){
		int i=st,j=dr,d=(st+dr)>>1;
		char aux[20];
		strcpy(aux,a[i]); strcpy(a[i],a[d]); strcpy(a[d],aux);
		d=0;
		while(i<j){
			if(strcmp(a[i],a[j])>0){
					strcpy(aux,a[i]);strcpy(a[i],a[j]); strcpy(a[j], aux);
					d=1-d;
			}
			i+=d;
			j-=1-d;
		}
		qs(st,i-1);
		qs(i+1,dr);
	}
}

int main(){
	ifstream fin("restante.in");
	fin>>N;
	for(int i=0;i<N;++i){
		fin>>a[i];
		sort(a[i],a[i]+strlen(a[i]));
	}
	qs(0,N-1);
	int rez=0,j;
	for(int i=0;i<N;i++){
		j=i+1;
		while(j<N && strcmp(a[i],a[j])==0)
			j++;
		if(j-i==1)
			rez++;
		i=j-1;
	}
	ofstream fout("restante.out");
	fout<<rez;
	return 0;
}