比赛 NOIP模拟赛by mzx Day1 评测结果 WWWWWEWAWW
题目名称 昆特-冠位指定 最终得分 10
用户昵称 jmisnal 运行时间 1.139 s
代码语言 C++ 内存使用 1.07 MiB
提交时间 2016-10-19 21:45:29
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <vector>
#include <cstring>
#include <algorithm>
#define ll long long
using namespace std;
struct data{
	int xy,lx,zl,v,wz;
	int jd;
}ls;
bool cmp(data a,data b)
{
//	if(a.jd!=b.jd)
//		return a.jd<b.jd;
	return a.xy<b.xy;
}
vector<data>a,b,pd;
int n,m,k;
ll jsa()
{
	ll ans=0;
	for(int i=0;i<a.size();i++)
		ans+=a[i].v;	
	return ans;
}
ll jsb()
{
	ll ans=0;
	for(int i=0;i<b.size();i++)
		ans+=b[i].v;
	return ans;
}
int work1()
{
	int df=jsa();
	if(jsa()>=df)
		return 0;
	for(int i=0;i<pd.size();i++)
	{
		
	}
/*	for(int i=0;i<k;i++)
	{
		b.push_back(pd[i]);
		if(jsb()>=df)
		{
		//	cout<<pd[i].xy<<endl;
			return pd[i].xy;
		}			
	}
	for(int i=k;i<pd.size();i++)
	{
		if(pd[i].jd)return -1;
		b.push_back(pd[i]);
		if(jsb()>=df)
		{
			return pd[i].xy;
		}
	}*/
}
ll f[100005];
int work()
{
	int df=jsa();
	
	if(jsb()>=df)return 0;
	ll ys=jsb();
//	cout<<df<<' '<<jsb()<<endl;
	b.clear();
	for(int i=0;i<pd.size();i++)
	{
		f[i+1]=f[i]+pd[i].v;
//		cout<<i+1<<' '<<f[i+1]<<endl;
	}

	for(int i=1;i<=pd.size();i++)
	{
	//	cout<<i<<' ';
		if(i>k)
		{
			if(f[i]-f[i-k]+ys>=df)
			//	cout<<'a';
				return pd[i-1].xy;
			continue;
		}
		if(f[i]+ys>=df)
		//	cout<<'b';
			return pd[i-1].xy;
		
	}
	return -1;
}
int main()
{
//	freopen("abcd.in","r",stdin);
freopen("gwent_grandorder.in","r",stdin);
freopen("gwent_grandorder.out","w",stdout);
	scanf("%d%d%d",&n,&m,&k);
	for(int i=1;i<=m;i++)
	{
		ls.xy=ls.lx=ls.zl=ls.v=ls.wz=ls.jd=0;
		scanf("%d%d",&ls.xy,&ls.lx);
		if(ls.lx==1||ls.lx==3)
		{
			scanf("%d%d%d",&ls.zl,&ls.v,&ls.jd);
			if(ls.jd)
				b.push_back(ls);
			else a.push_back(ls);
		}
	/*	else
		{
			scanf("%d%d",&ls.zl,&ls.wz);
			a.push_back(ls);
		}*/
	}
/*	for(int i=0;i<a.size();i++)
	{
		if(a[i].lx==1||a[i].lx==3)
		{
			cout<<a[i].zl<<' '<<a[i].v<<endl;
		}
		else
		{
			cout<<a[i].zl<<' '<<a[i].wz<<endl;
		}
	}*/
	for(int i=1;i<=n;i++)
	{
		ls.xy=ls.lx=ls.zl=ls.v=ls.wz=ls.jd=0;
		scanf("%d%d",&ls.xy,&ls.lx);
		if(ls.lx==1||ls.lx==3)
		{
			scanf("%d%d%d",&ls.zl,&ls.v,&ls.jd);
			pd.push_back(ls);		
		}		
	//	cout<<ls.xy<<' '<<ls.lx<<' '<<ls.zl<<' '<<ls.v<<' '<<ls.jd<<endl; 
	/*	else
		{
			scanf("%d%d",&ls.zl,&ls.wz);
			pd.push_back(ls);
		}*/
	}
	sort(pd.begin(),pd.end(),cmp);
	bool mjd=0;
	for(int i=0;i<pd.size();i++)
	{
		 if(a[i].jd)
		 {
		 	mjd=1;
		 	break;
		 }
	}
	int sb;
	if(mjd==0)
	{
		sb=work();
		if(sb==-1)
			printf("SingleDogMZX\n");
		else
			printf("%d\n",sb);
	}
	else 
	{
		printf("SingleDogMZX\n");
	}

	return 0;
}