• Into Blocks (easy version)

http://codeforces.com/contest/1209/problem/G1
一到思维题我就没啥思维,,,
贪心找某段中数目最多的,然后直接删。
int n,m;
int a[MAXN];
int lst[MAXN],cnt[MAXN];
int main()
{
    rd(n);rd(m);
    for(int i=0;i<n;i++)
    {
        rd(a[i]);
        lst[a[i]]=i;
        cnt[a[i]]++;
    }
    int mx=0,mn=0,ans=0,f=0;
    for(int i=0;i<n;i++)
    {
        mx=max(mx,lst[a[i]]);
        f=max(f,cnt[a[i]]);//
        if(i==mx)
        {
            ans+=mx-mn+1-f;
            f=0;
            mx=mn=i+1;
        }
    }
    printf("%d\n",ans);
    //stop;
    return  0;
}