记录编号 252178 评测结果 AAAAAAAAAA
题目名称 [NOIP 2011]选择客栈 最终得分 100
用户昵称 GravatarFoolMike 是否通过 通过
代码语言 C++ 运行时间 0.235 s
提交时间 2016-04-19 18:06:11 内存使用 40.75 MiB
显示代码纯文本
#include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;

const int maxl=200010;
int n,k,p,i,j,c[maxl],b[maxl],num[51][maxl];
unsigned long long ans;

int main()
{
	freopen("hotel.in","r",stdin);
	freopen("hotel.out","w",stdout);
	scanf("%d%d%d",&n,&k,&p);
	for (i=1;i<=n;i++){
		scanf("%d%d",&c[i],&b[i]);
		num[c[i]][i]=1;
		for (j=0;j<k;j++) num[j][i]+=num[j][i-1];
	}
	b[n+1]=-1;j=0;
	for (i=1;i<=n;i++){
		for (j=max(j,i);b[j]>p;j++);
		if (j>n) break;
		ans+=num[c[i]][n]-num[c[i]][j-1];
		if (i==j) ans--;
	}
	cout<<ans<<endl;
	return 0;
}