#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,ans=1e9;
int tmp[31];
int t[131],tt[131];
bool vis[31];
struct cow{
int s,t,c;
}cow[31];
struct cold{
int a,b,p,m;
}cold[31];
bool check(int tot){
for(int i=1;i<=131;i++) tt[i]=t[i];
for(int i=1;i<=tot;i++)
for(int j=cold[tmp[i]].a;j<=cold[tmp[i]].b;j++)
tt[j]-=cold[tmp[i]].p;
for(int i=1;i<=131;i++)
if(tt[i]>0) return 0;
return 1;
}
void dfs(int x,int cnt,int sum){
if(x==m+1){
if(check(cnt)) ans=min(ans,sum);
return;
}
tmp[cnt+1]=x;
dfs(x+1,cnt+1,sum+cold[x].m);
dfs(x+1,cnt,sum);
}
signed main(){
ios::sync_with_stdio(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>cow[i].s>>cow[i].t>>cow[i].c;
for(int j=cow[i].s;j<=cow[i].t;j++) t[j]+=cow[i].c;
}
for(int i=1;i<=m;i++)
cin>>cold[i].a>>cold[i].b>>cold[i].p>>cold[i].m;
dfs(1,0,0);
cout<<ans;
return 0;
}
同样的一份代码,为什么不开 O2 就 AC,开了就全 WA?求教大佬原因qwq。