Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. /* in the name of Allah */
  2. #include <algorithm>
  3. #include <bitset>
  4. #include <cassert>
  5. #include <cctype>
  6. #include <climits>
  7. #include <cmath>
  8. #include <complex>
  9. #include <cstdio>
  10. #include <cstdlib>
  11. #include <cstring>
  12. #include <ctime>
  13. #include <deque>
  14. #include <fstream>
  15. #include <functional>
  16. #include <iomanip>
  17. #include <iostream>
  18. #include <limits>
  19. #include <list>
  20. #include <map>
  21. #include <numeric>
  22. #include <queue>
  23. #include <set>
  24. #include <sstream>
  25. #include <stack>
  26. #include <string>
  27. #include <utility>
  28. #include <vector>
  29. using namespace std;
  30.  
  31. typedef long long LL ;
  32. #define ALL(a)              (a).begin(),(a).end()
  33. #define SZ(v)               ((int)(v).size())
  34. #define Clear(x,with)       memset(x , with , sizeof(x))
  35. #define FOR(i,start,end)    for(int i = start ; i < end ; i++)
  36. #define REP(i,start,end)    for(int i = start ; i >= end ; i--)
  37. #define FOREACH(it,x)       for(((x).begin()) it = (x.begin()) ; it != (x).end() ; it++)
  38.  
  39. class MinimumLiars
  40. {
  41.     public : int getMinimum(vector <int> claim)
  42.         {
  43.             int ans = 0 , cnt = 0 ;
  44.             int size = SZ(claim) ;
  45.             int sum[101] = {0} ;
  46.             vector <bool> status(size,true) ;
  47.            
  48.             if( count(ALL(claim),claim[0]) == size && claim[0] == size)
  49.                 return -1 ;
  50.            
  51.             FOR(i,0,SZ(claim)){
  52.                 if(claim[i] > size){
  53.                     cnt ++ ;
  54.                     status[i] = false ;
  55.                 }
  56.                 sum[claim[i]] ++ ;
  57.             }
  58.            
  59.             int index = -1 , maxi = -1 ;
  60.             FOR(i,0,101){
  61.                 if(sum[i] > maxi){
  62.                     index = i ;
  63.                     maxi = sum[i] ;
  64.                 }
  65.             }
  66.            
  67.             FOR(i,0,SZ(claim)){
  68.                 if(status[i] == true){
  69.                     if(claim[i] > index){
  70.                         ans ++ ;
  71.                         status[i] = false ;
  72.                     }
  73.                 }
  74.             }      
  75.            
  76.             return ans + cnt ; 
  77.         }
  78. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement