首页 > 其他 > 详细

Codeforces_729_E

时间:2016-11-26 20:04:56      阅读:198      评论:0      收藏:0      [点我收藏+]

http://codeforces.com/problemset/problem/729/E

 

存在的数必须连续,若不连续,从最后选人来补,注意根不是0和其他点是0的情况。

 

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;

int n,s,num[200005] = {0};

int main()
{
    int ans = 0,t = 0;
    scanf("%d%d",&n,&s);
    for(int i = 1;i <= n;i++)
    {
        int x;
        scanf("%d",&x);
        if(i == s && x != 0)    ans++;
        else if(i != s && x == 0)
        {
            t++;
            ans++;
        }
        else    num[x]++;
    }
    int sum = 1;
    for(int i = 1;i < n;i++)
    {
        if(sum >= n)    break;
        if(!num[i])
        {
            if(t)   t--;
            else    ans++;
            sum++;
        }
        else    sum += num[i];
    }
    printf("%d\n",ans);
    return 0;
}

 

Codeforces_729_E

原文:http://www.cnblogs.com/zhurb/p/6104865.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!