比赛 20111108 评测结果 TAAAAWWTAT
题目名称 机房 最终得分 50
用户昵称 yifeng 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-08 10:18:38
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int absint(int a)
{
	return a>0?a:-a;
}

int main()
{
	freopen("orz.in","r",stdin);
	freopen("orz.out","w",stdout);
	int N,M;
	scanf("%d %d\n",&N,&M);
	
	int Tot=0;
	int One=0;
	int Two=0;
	int E[2501];
	int T[2501];
	
	memset(E,0,sizeof(E));
	memset(T,0,sizeof(T));
	
	int tmp;
	for (int i=1;i<=N;i++)
	{
		//scanf("%d\n",&A[i]);
		scanf("%d\n",&tmp);
		if(tmp==1)
		{
			One++;
			E[i]=E[i-1]+1;
			T[i]=T[i-1];
			continue;
		}
			
		if(tmp==2)
		{
			Two++;
			T[i]=T[i-1]+1;
			E[i]=E[i-1];
			continue;
		}
	}
	int top=0;
	while(top<N)
	{
		for (int i=N;i>=top+1;i--)
		{
			if(T[i]==0 || E[i]==0 || absint((T[i]-T[top])-(E[i]-E[top]))<=M)
			{
				top=i;
				Tot++;
				break;
			}
		}
	}
	cout<<Tot<<endl;
	return 0;
}