期望得分:100+0+100=200

实际得分:100+20+0=120

 

2017北京国庆刷题Day7 morning

离散化搞搞

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
#define N 100001
int a[N],b[N];
bool vis[N];
void read(int &x)
{
    x=0;  char c=getchar();
    while(!isdigit(c))  c=getchar(); 
    while(isdigit(c)) { x=x*10+c-'0'; c=getchar(); }
}
int main()
{
    freopen("del.in","r",stdin);
    freopen("del.out","w",stdout);
    int n,k;
    read(n); read(k);
    for(int i=1;i<=n;i++) read(a[i]),b[i]=a[i];
    sort(b+1,b+n+1);
    int tot=unique(b+1,b+n+1)-b-1;
    for(int i=1;i<=n;i++) a[i]=lower_bound(b+1,b+tot+1,a[i])-b;
    int cnt1=0,cnt2=0;
    for(int i=1;i<=n;i++)
        if(!vis[a[i]]) vis[a[i]]=true,cnt1++;
        else cnt2++;
    if(k<=cnt2) printf("%d\n",cnt1);
    else printf("%d\n",cnt1-(k-cnt2));
    return 0; 
}
View Code

相关文章:

  • 2021-10-12
  • 2022-02-04
  • 2021-12-11
  • 2022-02-08
  • 2021-07-30
  • 2022-02-11
  • 2022-02-24
  • 2021-10-27
猜你喜欢
  • 2021-11-13
  • 2021-07-30
  • 2021-12-02
  • 2022-02-13
  • 2021-10-29
  • 2021-11-04
  • 2021-07-14
相关资源
相似解决方案