Cod sursa(job #72589)

Utilizator gigi_becaliGigi Becali gigi_becali Data 14 iulie 2007 13:43:42
Problema Cutii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb
using namespace std;
#include <cstdio>
#include <algorithm>
#include <cstdlib>
#include <string>
#include <ctime>
#define maxn 100001

char x[maxn];
char *sarray[maxn];
int n;

struct cmp{
	bool operator()(const char *a, const char *b)const
	{
		return strcmp(a, b)<0;
	}
};
int comp(char *a, char *b)
{
	return strcmp(a, b)<0;
}

void read()
{
	freopen("sarray.in","r",stdin);
	gets(x);
	n=strlen(x);
}

void sortarrays()
{
	char *p;
	int i;
	for(p=x,i=0;i<n;++p, ++i) sarray[i]=p;
	//qsort(sarray, n, sizeof(char*), (int(*)(const void *, const void *))comp);
	//	stable_sort(sarray, sarray+n, comp);
	//sort(sarray, sarray+n, cmp());
	make_heap(sarray, sarray+n,comp);
	sort_heap(sarray, sarray+n, comp);
}

void write()
{
	for(int i=0;i<n;++i)printf("%s\n", sarray[i]);
}
int verifica()
{
	for(int i=1;i<n;++i) if(strcmp(sarray[i-1], sarray[i])>=0) return 0;
	return 1;
}

int main()
{
  	//freopen("sarray.out","w",stdout);
	//read();
  n=100000;
  srand(time(0));
  for(int i=0;i<n;++i) x[i]=rand()%26+'a';
  sortarrays();
	printf("%d\n",verifica()); 
		//write();
	return 0;
}