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: 1



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
  • Coba
    1 day 15 hours 39 mins 12 secs ago
  • Sadasd
    2 days 7 hours 37 mins 6 secs ago
  • Sa
    2 days 7 hours 38 mins 11 secs ago
  • Sdfg
    2 days 8 hours 23 mins 28 secs ago
  • Tytul
    2 days 10 hours 7 mins 34 secs ago