Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* in the name of Allah */
- #include <algorithm>
- #include <bitset>
- #include <cassert>
- #include <cctype>
- #include <climits>
- #include <cmath>
- #include <complex>
- #include <cstdio>
- #include <cstdlib>
- #include <cstring>
- #include <ctime>
- #include <deque>
- #include <fstream>
- #include <functional>
- #include <iomanip>
- #include <iostream>
- #include <limits>
- #include <list>
- #include <map>
- #include <numeric>
- #include <queue>
- #include <set>
- #include <sstream>
- #include <stack>
- #include <string>
- #include <utility>
- #include <vector>
- using namespace std;
- typedef long long LL ;
- #define ALL(a) (a).begin(),(a).end()
- #define SZ(v) ((int)(v).size())
- #define Clear(x,with) memset(x , with , sizeof(x))
- #define FOR(i,start,end) for(int i = start ; i < end ; i++)
- #define REP(i,start,end) for(int i = start ; i >= end ; i--)
- #define FOREACH(it,x) for(((x).begin()) it = (x.begin()) ; it != (x).end() ; it++)
- class MinimumLiars
- {
- public : int getMinimum(vector <int> claim)
- {
- int ans = 0 , cnt = 0 ;
- int size = SZ(claim) ;
- int sum[101] = {0} ;
- vector <bool> status(size,true) ;
- if( count(ALL(claim),claim[0]) == size && claim[0] == size)
- return -1 ;
- FOR(i,0,SZ(claim)){
- if(claim[i] > size){
- cnt ++ ;
- status[i] = false ;
- }
- sum[claim[i]] ++ ;
- }
- int index = -1 , maxi = -1 ;
- FOR(i,0,101){
- if(sum[i] > maxi){
- index = i ;
- maxi = sum[i] ;
- }
- }
- FOR(i,0,SZ(claim)){
- if(status[i] == true){
- if(claim[i] > index){
- ans ++ ;
- status[i] = false ;
- }
- }
- }
- return ans + cnt ;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement