看看我的代码
#include<bits/stdc++.h>
using namespace std;
int s[15];
int b[15];
bool book[15];
int ans=0x3f3f3f3f,llla=1,lllb=0;
void dfs(int n,int k,int ku,int suan){
if(abs(ku-suan)<ans)ans=abs(ku-suan);
if(n!=k){
for(int i=1;i<=n;i++){
if(book[i]==false){
book[i]=true;
dfs(n,k+1,ku+b[i],suan=s[i]);
book[i]=false;
}
}
}
}
int main(){
memset(s,0,sizeof(s));
memset(b,0,sizeof(b));
memset(book,0,sizeof(book));
int n,sames=0,sameb=0,ss=1,sb=1;
cin>>n;
cin>>s[1]>>b[1];
sames=s[1];
sameb=b[1];
for(int i=2;i<=n;i++){
cin>>s[i]>>b[i];
if(s[i]==sames)ss++;
if(b[i]==sameb)sb++;
}
if(n==1){
cout<<abs(s[1]-b[1])<<endl;
return 0;
}
if((ss==sb&&ss==n&&sb==n)){
for(int i=1;i<=n;i++){
llla*=s[i];
lllb+=b[i];
ans=min(ans,abs(llla-lllb));
}
cout<<ans;
return 0;
}
dfs(n,1,0,1);
cout<<ans;
return 0;
}
结果……WA了3个点(https://www.luogu.com.cn/record/104639939) 求助求助