Delete HDU5210 (simulate greedy)

Source: Internet
Author: User

Delete HDU5210 (simulate greedy)
Delete
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission (s): 207 Accepted Submission (s): 140


Problem Description
WLD likes playing with numbers. one day he is playing with N integers. he wants to delete K integers from them. he likes diversity, so he wants to keep the kinds of different integers as same as possible after the deletion. but he is busy pushing, can you help him?


Input
There are Multiple Cases. (At MOST 100)

For each case:

The first line contains one integer N (0
The second line contains N integers a1, a2,..., aN (1 ≤ ai ≤ N), denoting the integers WLD plays.

The third line contains one integer K (0 ≤ K

Output
For each case:

Print one integer. It denotes the maximum of different numbers remain after the deletion.


Sample Input

4
1 3 1 2
1



Sample Output

3

Hint
If WLD deletes a 3, the numbers remain is [1, 1, 2], he'll get 2 different numbers.
If WLD deletes a 2, the numbers remain is [1, 1, 3], he'll get 2 different numbers.
If WLD deletes a 1, the numbers remain is [1, 2, 3], he'll get 3 different numbers.




Source

BestCoder Round #39 ($)

1001 Delete
Use a cnt array to write down the number of times each number appears in sequence.
Greedy When deleting the number, try to delete the number that appears more than 1
In this way, a maximum of different numbers can be created at the end.

 

#include
 
  #include
  
   #include
   
    #include#include
    
     #include
     #include
      
       #include
       
        #include
        
         #include
         
          #include
          
           #include
           
            //#include
            
             using namespace std;template
             
              inline T read(T&x){ char c; while((c=getchar())<=32)if(c==EOF)return 0; bool ok=false; if(c=='-')ok=true,c=getchar(); for(x=0; c>32; c=getchar()) x=x*10+c-'0'; if(ok)x=-x; return 1;}template
              
                inline T read_(T&x,T&y){ return read(x)&&read(y);}template
               
                 inline T read__(T&x,T&y,T&z){ return read(x)&&read(y)&&read(z);}template
                
                  inline void write(T x){ if(x<0)putchar('-'),x=-x; if(x<10)putchar(x+'0'); else write(x/10),putchar(x%10+'0');}template
                 
                  inline void writeln(T x){ write(x); putchar('\n');}//-------ZCC IO template------const int maxn=500;const double inf=999999999;#define lson (rt<<1),L,M#define rson (rt<<1|1),M+1,R#define M ((L+R)>>1)#define For(i,t,n) for(int i=(t);i<(n);i++)typedef long long LL;typedef double DB;typedef pair
                  
                    P;#define bug printf("---\n");#define mod 100007int a[maxn];bool cmp(int a,int b){ return a>b;}int main(){ int n,m; while(read(n)) { memset(a,0,sizeof(a)); int maxv=0; For(i,0,n) { int tmp; read(tmp); a[tmp]++; maxv=max(maxv,tmp); } int k; read(k); sort(a,a+101,cmp); int i=0; while(a[i])i++; int sum=0; For(j,0,i)sum+=a[j]; sum-=i; k-=sum; if(k<=0)writeln(i); else writeln(i-k<0?0:i-k); } return 0;}
                  
                 
                
               
              
             
            
           
          
         
        
       
      
    
   
  
 

 

 

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.