codeforces#235_div2_B Sereja and Contests

题目地址: cf#235_div2_B

A题还是按惯例不记录了。


问错过的轮数,最多就是没有做的场数,最少就是每个连续的没做场数,÷2取ceil。嗯嗯 也是水题。  记得把p[x]取为1,这样来作为终结符

代码:

#include<iostream>
#include<cmath>

using namespace std;

int p[40001];

int main()
{
    int x,k;
    cin>>x>>k;
    
    int flag=0;
    int a,b;
    
    for(int i=0;i<k;i++)
    {
        cin>>flag;
        if(flag==1)
        {  cin>>a>>b;
            p[a]=1;
            p[b]=1;
        }
        
        else
        {
          cin>>a;
          p[a]=1;
        }
        
        
    }
    
    int maxi=0;
    for(int i=1;i<=x-1;i++)
        if(p[i]==0)  maxi++;
    
    
    //  让p[x]==1 作为结束符
    p[x]=1;
    
    int mini=0;
    double two=2.0;
    
    int sum=0;
    for(int i=1;i<=x;i++)
    {
        if(p[i]==1)
        {
            mini+=ceil(sum/two);
            sum=0;
        }
        
        else sum++;
    }
    
    
    cout<<mini<<' '<<maxi<<endl;
    
        
}


posted on 2014-03-11 15:34  814jingqi的ACM  阅读(150)  评论(0)    收藏  举报