Hi, I'm getting WA in this problem. Please give some I/O ...
Code: Select all
#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
#define _null '\0'
char word[505][10011];
char data[505][10011];
char buf[99999];
int sort_func(const void *a,const void *b)
{
return (strcmp((char*)a,(char*)b));
}
int main()
{
int len,ct,vt;
bool mark = false;
bool enter = false;
char delims[] = ",':;?<>/0123456789~!@#$%^&*()+|\\.\"";
ct = vt = 0;
memset(word,_null,sizeof(word));
memset(data,_null,sizeof(data));
while(scanf("%s",buf)==1)
{
len = strlen(buf);
for(int i = 0;i < len;i++)
{
if(isalpha(buf[i]))
{
if(isupper(buf[i]))
{
buf[i] = (buf[i] + 32);
}
}
}
if(mark == true)
{
if(buf[len-1]!='-')
{
strcat(word[ct],buf);
mark = false;
ct++;
continue;
}
}
if(buf[len-1]=='-' && len > 0)
{
if(len == 1)
{
strcat(word[ct],"-");
mark = false;
ct++;
continue;
}
strncat(word[ct],buf,len-1);
mark = true;
continue;
}
strcat(word[ct],buf);
ct++;
}
//////////////////////
char *result=NULL;
for(int i = 0;i < ct;i++)
{
result = strtok(word[i],delims);
while(result!=NULL)
{
strcpy(data[vt],result);
result = strtok(NULL,delims);
vt++;
}
}
//////////////////////
qsort((void*)data,vt,sizeof(data[0]),sort_func);
//////////////////////
printf("%s\n",data[0]);
strcpy(buf,data[0]);
for(int i = 1;i < vt;i++)
{
if(strcmp(buf,data[i]))
{
if(data[i][0]!=_null)
{
printf("%s\n",data[i]);
strcpy(buf,data[i]);
}
}
}
//////////////////////
//for(int i = 0;i < ct;i++)
// printf("%s\n",word[i]);
return 0;
}
Thank's in advance.