RT,萌新根本改不对,求帮助
#include<bits/stdc++.h>
using namespace std;
int dp[2010],low[2010],upp[2010],no[10010][2010],cnt,you[10010];
int n,m,k,x[10010],y[10010],z,l,r;
int main(){
//freopen("stO","r",stdin);
//freopen("Orz","w",stdout);
cin>>n>>m>>k;
for(int i=0;i<n;i++)cin>>x[i]>>y[i];
for(int i=1;i<=k;i++){
cin>>z>>l>>r;
you[z]=1;
for(int j=0;j<=l;j++)no[z][j]=0x3f3f3f;
for(int j=r;j<=m;j++)no[z][j]=0x3f3f3f;
}
// dp[0]=1e9;
//for(int j=1;j<=m;j++)printf("%-12d",dp[j]);
//cout<<endl;
memset(upp,0x3f,sizeof(upp));
memset(low,0x3f,sizeof(low));
for(int j=x[0];j<=m+x[0];j++){
if(!no[1][min(j,m)]){
upp[min(j,m)]=min(upp[j-x[0]]+1,min(dp[j-x[0]]+1,upp[min(j,m)]));
}
}
//cout<<upp[m];
//cout<<endl;
for(int j=m-y[0];j>=1;j--){
if(!no[1][j]){
low[j]=dp[j+y[0]];
}
}
for(int j=1;j<=m;j++){
dp[j]=min(upp[j],low[j]);
if(dp[j]<0x3f3f3f3f)cnt=1;
}
for(int i=2;i<=n;i++){
//for(int j=1;j<=m;j++)printf("%-12d",dp[j]);
//cout<<endl;
memset(upp,0x3f,sizeof(upp));
memset(low,0x3f,sizeof(low));
for(int j=x[i-1]+1;j<=m+x[i-1];j++){
if(!no[i][min(j,m)]){
upp[min(j,m)]=min(upp[j-x[i-1]]+1,min(dp[j-x[i-1]]+1,upp[min(j,m)]));
}
}
//cout<<upp[m];
//cout<<endl;
for(int j=m-y[i-1];j>=1;j--){
if(!no[i][j]){
low[j]=dp[j+y[i-1]];
}
}
for(int j=1;j<=m;j++){
dp[j]=min(upp[j],low[j]);
if(dp[j]<0x3f3f3f)cnt=i;
}
}
if(cnt!=n){
int over=0;
for(int i=0;i<=cnt;i++){
if(you[i])over++;
}
printf("0\n%d",over);
return 0;
}
int over=0x3f3f3f;
for(int i=1;i<=m;i++)over=min(over,dp[i]);
printf("1\n%d",over);
}
stO helper Orz