TOPIC

25% Wrong Answer

João Victor Pulheis Sierra asked 2 years ago

Fiz o código abaixo, testei todos os casos possíveis, os de exemplo e os do uDebug, e em todos obtive a resposta correta. Contudo, na submissão obtive 25% Wrong Answer. Não consigo identificar possíveis erros. Agradeço quem puder me ajudar.

#include <stdio.h>
#include <string.h>

#define TF 10000
#define LIM 201

void quickSort(char items[TF][LIM], int left, int right)
{
  int i, j;
  char *x;
  char temp[LIM];

  i = left;
  j = right;
  x = items[(left+right)/2];

  do {
    while((strcmp(items[i],x) < 0) && (i < right)) {
       i++;
    }
    while((strcmp(items[j],x) > 0) && (j > left)) {
        j--;
    }
    if(i <= j) {
      strcpy(temp, items[i]);
      strcpy(items[i], items[j]);
      strcpy(items[j], temp);
      i++;
      j--;
   }
  } while(i <= j);

  if(left < j) {
     quickSort(items, left, j);
  }
  if(i < right) {
     quickSort(items, i, right);
  }
}

void quickSortMain(char items[TF][LIM], int count)
{
  quickSort(items, 0, count-1);
}

int main(void)
{
    int i, j, n, cont;
    char tel[TF][LIM];

    while(scanf("%d", &n) != EOF)
    {
        getchar();

        for(i = 0; i < n; i++)
            scanf("%s", tel[i]);

        quickSortMain(tel, n);
        cont = 0;

        for(i = 0; i < n - 1; i++)
            for(j = 0; j < strlen(tel[i]) && tel[i][j] == tel[i + 1][j]; j++)
                cont++; 

        printf("%d\n", cont);
    }

    return 0;
}

This topic has not been answered yet. Be the first!

Remember not post solutions. Your post may be reviewed by our moderators.