question:本人程序在本地测试时毫无问题,且第一个测试点(即样例)本地通过,但放到洛谷上时4个RuntimeError(RE)和一个WrongAnswer(WA)
下面附上代码
#include<bits/stdc++.h>
using namespace std;
long long n,m,dp[50],le=99999999999,ma=-9999999999;
int compare(const void *a, const void *b)
{
long long *pa = (long long*)a;
long long *pb = (long long*)b;
return (*pa )- (*pb);
}
void dd(long long high,long long lis[]){
long long list[high];
for(long long i=0;i<high+1;i++){
list[i]=lis[i];
}
long long now=high+1;
bool isre=false;
if(now>m-1){
qsort(list,m,sizeof(long long),compare);
long long res,ret=1,a,b;
for(long long i=0;i<m;i++){
res=0;
a=list[i];
b=list[(1+i)%m];
if(b<a)b=n+b;
do{
a++;
res+=dp[a%n];
}while(a<b);
ret*=(res%10+10)%10;
}
ma=max(ma,ret);
le=min(le,ret);
return;
}
for(long long i=0;i<n;i++){
for(long long si=0;si<high+1;si++){
list[si]=lis[si];
}
list[now]=i;
isre=false;
for(long long ii=0;ii<now;ii++){
if(i==list[ii]){
isre=true;
break;
}
}
if(isre)continue;
dd(now,list);
}
}
int main(){
cin>>n>>m;
for(long long i=0;i<n;i++){
cin>>dp[i];
}
long long list[]={0};
for(long long i=0;i<n;i++){
遍历每一种切分点
list[0]=i;
dd(0,list);
}
cout<<le<<endl<<ma;
return 0;
}
本人贴上的是做题时的代码,变量命名不规范处还请见谅,同时注释名词用的不对的地方欢迎指出