Advertisement
Guest User

task

a guest
Mar 30th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.10 KB | None | 0 0
  1. /*На вход программе подаются сведения о номерах школ учащихся, участвовавших в олимпиаде.
  2. В первой строке сообщается количество учащихся N, каждая из следующих N строк имеет формат:
  3. <Фамилия> <Инициалы> <номер школы>
  4. где <Фамилия> – строка, состоящая не более чем из 20 символов,
  5. <Инициалы> – строка, состоящая из 4-х символов (буква, точка, буква, точка),
  6. <номер школы> – не более чем двузначный номер.
  7. <Фамилия> и <Инициалы>, а также <Инициалы> и <номер школы> разделены одним пробелом.
  8. Пример входной строки:
  9. Иванов П.С. 57
  10. Требуется написать как можно более эффективную программу
  11. (укажите используемую версию языка программирования, например, Borland Pascal 7.0),
  12. которая будет выводить на экран информацию, из какой школы было меньше всего участников
  13. (таких школ может быть несколько).
  14. При этом необходимо вывести информацию только по школам, пославшим хотя бы одного участника.
  15. Следует учитывать, что N>=1000.
  16. */
  17.  
  18. #include <stdio.h>
  19.  
  20. #define NMAX 100
  21.  
  22. int main(void) {
  23.     int arr[NMAX]= {0};
  24.     int nstr, min;
  25.  
  26.     scanf("%d%*c", &nstr);
  27.  
  28.     for(int i=0, n=0; i<nstr; i++) {
  29.         scanf("%*s%*s%d%*c", &n);
  30.         if(n!=0)
  31.           arr[n]++;
  32.     }
  33.  
  34.     min = nstr;
  35.     for (int i=0; i < NMAX; i++)
  36.         if (arr[i]!=0 && arr[i] < min)
  37.             min = arr[i];
  38.     for(int i = 0; i < NMAX; i++)
  39.         if(arr[i] == min)
  40.             printf("%d ", i);
  41.  
  42.     return 0;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement