有点动归味道,想清楚了,超简单。
#include<fstream>
#include<algorithm>
#include<numeric>
using namespace std;
const int N(200001);
int color[N],consume[N],color_n[51]={0},color_n_ok[51]={0},f[N];
int main()
{
ifstream cin("hotel.in");
ofstream cout("hotel.out");
int n,k,p;
cin>>n>>k>>p;
for (int i=0;i<n;i++)
{
cin>>color[i]>>consume[i];
if (consume[i]<=p){
f[i]=color_n[color[i]]++;
copy(color_n,color_n+k,color_n_ok);
}
else f[i]=color_n_ok[color[i]],color_n[color[i]]++;
}
cout<<accumulate(f,f+n,0)<<endl;
return 0;
}
posted on 2012-05-30 00:51
龙在江湖 阅读(342)
评论(0) 编辑 收藏 引用 所属分类:
竞赛题解_NOIP