求助,20pts
查看原帖
求助,20pts
233815
zhjzhmh楼主2020/12/13 16:38
#include<bits/stdc++.h>
using namespace std;
int n,m,k,timu[1010],student[1010],t,bj,time_a,time_b,time_c,time_d,A,H,E,time_jf,time_lg,p;
struct node
{
	int ti,stu,mark,xh;
}a[100010];
bool cmp(node x,node y) {return x.stu<y.stu||x.stu==y.stu&&x.ti<y.ti||x.stu==y.stu&&x.ti==y.ti&&x.xh<y.xh;}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++) scanf("%d",&timu[i]);
	sort(timu+1,timu+n+1);
	for(int i=1;i<=m;i++) scanf("%d",&student[i]);
	sort(student+1,student+m+1);
	cin>>time_a>>time_b>>time_c>>time_d>>A>>H>>E>>k;
	for(int i=1;i<=k;i++) scanf("%d%d%d",&a[i].ti,&a[i].stu,&a[i].mark),a[i].xh=i;
	sort(a+1,a+k+1,cmp);
	if(!E)
	{
		time_jf=time_a*n;
		time_lg=int(1.0*(time_a*n+k*time_c)/(1.0*A/100))+H;
		t=1;p=1;
		for(int i=2;i<=k+1;i++)
		{
			if(a[i].stu!=a[i-1].stu)
			{
				time_jf+=min(time_a*p+(i-t)*time_c,time_b*(i-t));
				cout<<time_a*p+(i-t)*time_c<<" "<<time_b*(i-t)<<endl;
				t=i;
				p=1; 
			}
			if(a[i].ti!=a[i-1].ti&&a[i].stu==a[i-1].stu) p++;
		}
		cout<<time_jf<<endl<<time_lg<<endl;
		if(time_lg<time_jf) cout<<"Use Luogu!";
		  else cout<<"Forget it...";
	}
	else
	{
		time_jf=time_a*n;
		time_lg=int(1.0*(time_a*n+k*time_c)/(1.0*A/100))+H;
		t=1;p=1;bj=0;
		for(int i=2;i<=k+1;i++)
		{
			if(a[i].stu!=a[i-1].stu)
			{
				time_jf+=min(time_a*p+(i-t)*time_c,time_b*(i-t));
				t=i;
				p=1; 
			}
			if(a[i].ti!=a[i-1].ti&&a[i].stu==a[i-1].stu) p++;
		}
		for(int i=1;i<=k;i++)
		{
			if(a[i].stu!=a[i-1].stu||a[i].ti!=a[i-1].ti) bj=0;
			if(a[i].mark>bj) bj=a[i].mark,time_jf+=time_d;
		}
		cout<<time_jf<<endl<<time_lg<<endl;
		if(time_lg<time_jf) cout<<"Use Luogu!";
		  else cout<<"Forget it...";
	}
} 

为什么这个数据线下是509???

2 3
4 2 
2 5 4 
54 47 14 13 94 124 0
10
4 4 90
4 2 50
2 4 90
4 4 90
2 5 40
4 5 60
4 2 30
2 2 80
4 2 20
2 2 20

2020/12/13 16:38
加载中...