准确的说,这一题也是比较简单的的,逆向考虑重复的就可以了。然而当N<=5时,最终的结果就是N的三次方。代码如下。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main (){
freopen ("combo.in","r",stdin);
freopen ("combo.out","w",stdout);
int N=0;
int a[110],b[110];
int i=0,x=0,y=0,tot=1,rep=0,n=0;
cin>>N;
for (i=1;i<=3;i++){
cin>>a[i];
}
for (i=1;i<=3;i++){
cin>>b[i];
}
if (N<=5){
cout<<N*N*N<<endl;
return 0;
}
for (i=1;i<=3;i++){
x=(a[i]>=b[i])?a[i]:b[i];
y=(a[i]<b[i])?a[i]:b[i];
if ((x-y)<5){
rep=5-(x-y);
}
else if ((N+y-x)<5){
rep=5-(N+y-x);
}
tot*=rep;
}
cout<<250-tot<<endl;
return 0;
}