VasilM

6b_map_major_in_array

Dec 8th, 2012
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.65 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4.  
  5. using namespace std;
  6.  
  7. int n,m;
  8. string num;
  9.  
  10. int main(){
  11.    
  12.     while ( cin >> n ){
  13.  
  14.         map< string,int > major;
  15.         bool gotAnswer = false;
  16.         m = n;
  17.  
  18.         while( m-- ){
  19.  
  20.             cin >> num;
  21.             major[ num ]++;
  22.  
  23.             if ( !gotAnswer ){
  24.                 if ( major[ num ] > n/2 ){
  25.                 cout << num << endl;
  26.                 gotAnswer = true;
  27.                 }
  28.             }
  29.         }
  30.     }
  31.     return 0;
  32. }
  33. /*
  34. Задача 6b.
  35. Да се намери мажорантът на множество от цели числа, като е известно, че такъв съществува.
  36.  
  37. Дефиниция: Нека е дадено n-елементно мултимножество (т.е. множество, в което се допуска повторение на елементи).
  38. Ще казваме, че даден елемент на множеството е негов мажорант, ако се среща строго повече от n/2 пъти.
  39.  
  40. Вход:
  41. На входа се задава числото n (n < 105) - брой на елементите на множеството и стойностите на самите елементи - цели
  42. числа в интервала [-1020, 1020] Входът съдържа много примери.
  43.  
  44. Изход:
  45. За всеки пример на отделен ред се отпечатва цяло число - мажорантът на множеството.
  46.  
  47. Пример:
  48. 6 6 6 6 6 2 2
  49. 6 1 1 1 1 1 1
  50. 15
  51. 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1
  52. 3
  53. 11111111111111111111 11111111111111111112 11111111111111111111
  54.  
  55. Решение на примера:
  56. 6
  57. 1
  58. 1
  59. 11111111111111111111
  60. */
Advertisement
Add Comment
Please, Sign In to add comment