提交时间:2024-05-25 14:56:59

运行 ID: 148814

#include<bits/stdc++.h> using namespace std; const int MAX=0x3f3f3f3f; const int M=1e5+5; int w[M],l[M],f[M]; int sw; int Opt(int x,int y){ int width=0,h=0; for(int i=x;i<=y;i++){ width+=w[i]; h=max(l[i],h); } return width>sw ? MAX : h; } int main(){ ios::sync_with_stdio(false); cin.tie(0); int n; cin>>n>>sw; for(int i=1;i<=n;i++)cin>>w[i]>>l[i]; for(int i=1;i<=n;i++){ f[i]=MAX; for(int j=0;j<i;j++){ f[i]=min(f[i],f[j]+Opt(j+1,i)); } } cout<<f[n]<<endl; return 0; }