训练士兵,分组团和单独练,这个枚举思路为什么不行
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,S;
int ans=0x3f3f3f3f;
int minc=0;
struct bin{
int p,c;
bin(int pp,int cc){
p=pp;
c=cc;
}
} ;
vector<bin> a;
void find(){
for(int i=0;i<n;i++){
if(a[i].c>minc){
minc=a[i].c;
}
}
}
void dfs(int x){
if(x>minc){
return ;
}
int sum=0;
int sum1=0;
for(int i=0;i<n;i++){
if((a[i].c-x)<=0){
sum1=0;
}else{
sum1=a[i].c-x;
}
sum=sum+(sum1)*a[i].p;
}
sum=sum+S*x;
ans=min(sum,ans);
dfs(x+1);
}
int main(){
cin>>n>>S;
for(int i=0;i<n;i++){
int pp,cc;
cin>>pp>>cc;
a.push_back(bin(pp,cc));
}
find();
dfs(0);
cout<<ans;
return 0;
}