各位大神,我的前八个点都是AC,但后面的点报了RE和WA,请问是因为什么原因报的RE,要怎么改?
#include<bits/stdc++.h>
using namespace std;
struct jyzn
{
int yj;
int bh;
};
jyzn jyz[100100];
int n,d,nj[100100],yjjj[100100];
double yhf[100100];
long long int mony=0;
double yxx=0;
bool bjhs(jyzn jyza,jyzn jyzb)
{
if(jyzb.yj<jyza.yj)
{
return false;
}
else
{
return true;
}
}
int qzhs(double ljc1)
{
int ljc2=int(ljc1);
if(ljc2==ljc1)
{
return ljc2;
}
else
{
return ljc2-1;
}
}
int main()
{
cin>>n>>d;
int nj;
for(int i=1;i<n;i++)
{
scanf("%d",&nj);
yhf[i]=nj*1.0/d;
}
for(int i=1;i<=n;i++)
{
scanf("%d",&jyz[i].yj);
jyz[i].bh=i;
yjjj[i]=jyz[i].yj;
}
sort(jyz+1,jyz+n+1,bjhs);
int tld[100100],tldn=0;
jyzn jyzjl;
jyzjl.bh=n;
tld[0]=n;
for(int i=1;i<=n;i++)
{
if(jyz[i].bh<jyzjl.bh)
{
tldn++;
tld[tldn]=jyz[i].bh;
jyzjl.bh=jyz[i].bh;
}
}
int dw=1;
for(int i=tldn;i>=0;i--)
{
double aa=0;
for(int j=dw;j<tld[i];j++)
{
aa=aa+yhf[j];
};
yxx=yxx-aa;
int qz=qzhs(yxx);
qz=-qz;
mony=mony+qz*yjjj[dw];
yxx=yxx+qz;
dw=tld[i];
}
cout<<mony<<endl;
return 0;
}