The text below is selected, press Ctrl+C to copy to your clipboard. (⌘+C on Mac) No line numbers will be copied.
Guest
Jghjf
By Guest on 18th August 2017 07:43:50 PM | Syntax: C | Views: 4



New paste | Download | Show/Hide line no. | Copy text to clipboard
  1. #include <stdio.h>
  2.  
  3. struct torneio {
  4.     char participante[15];
  5.     int pontos[12];
  6.     int total;
  7. };
  8.  
  9. int comparar(const void *a, const void *b) {
  10.     struct torneio *i = (struct torneio *) a;
  11.     struct torneio *j = (struct torneio *) b;
  12.  
  13.     if(i->total == j->total) {
  14.         if((int) i->participante[0] > (int)j->participante[0]) return 1;
  15.         else return 0;
  16.     }
  17.     else if(i->total > j->total) return -1;
  18.     else return 1;
  19. }
  20.  
  21. void quick_sort( int y[], int m) {
  22.     int p, q, r;
  23.     int i, j;
  24.     int t[m];
  25.     int b;
  26.  
  27.     b = y[m/2];
  28.  
  29.     for(p = q = r = i = 0; i < m; i++)
  30.         if(y[i] < b)
  31.             y[p++] = y[i];
  32.         else if(y[i] > b)
  33.             t[q++] = y[i];
  34.         else r++;
  35.  
  36.     if(p > 1) quick_sort(y, p);
  37.     if(q > 1) quick_sort(t, q);
  38.  
  39.     for(j = 0, i = p; j < r; j++, i++)
  40.         y[i] = b;
  41.     for(j = 0; j < q; j++, i++)
  42.         y[i] = t[j];
  43. }
  44.  
  45. int main() {
  46.     int i, j, k, teste = 1, pos;
  47.  
  48.  
  49.  
  50.     scanf("%d", &j);
  51.  
  52.     while(j > 0) {
  53.         pos = 1;
  54.         struct torneio c[j];
  55.  
  56.         for(i = 0; i < j; i++) {
  57.             scanf("%s", c[i].participante);
  58.  
  59.             c[i].total = 0;
  60.  
  61.             for(k = 0; k < 12; k++) {
  62.                 scanf("%d", &c[i].pontos[k]);
  63.                 c[i].total += c[i].pontos[k];
  64.             }
  65.  
  66.             quick_sort(c[i].pontos, 12);
  67.             c[i].total -= c[i].pontos[0] + c[i].pontos[11];
  68.         }
  69.  
  70.         qsort(c, j, sizeof(struct torneio), comparar);
  71.  
  72.         printf("Teste %d\n", teste++);
  73.  
  74.         for(i = 0; i < j; i++) {
  75.             if(c[i].total == c[i-1].total && i != 0) {
  76.                 printf("%d %d %s\n", pos-1, c[i].total, c[i].participante);
  77.                 pos++;
  78.             }
  79.             else printf("%d %d %s\n", pos++, c[i].total, c[i].participante);
  80.         }
  81.  
  82.         printf("\n");
  83.         scanf("%d", &j);
  84.     }
  85.  
  86.     return 0;
  87. }
  88.  
  89.  
  90. //74 111 227 111 32 86 105 99 116 111 114 32 82 111 100 114 105 103 117 101 115 32 82 111 116 97 110 100 97 110 111 10 83 105 115 116 101 109 97 115 32 100 101 32 73 110 102 111 114 109 97 231 227 111 32 50 48 49 55 46 49



  • Recent Pastes