比赛 |
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;
}