This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
#define ll long long
#define pb push_back
#define fr first
#define sc second
#define MAX ((ll)(1e12+100))
#define MX ((ll)(1e6+100))
#define ARRS ((ll)(2e6+100))
#define HS ((ll)(1049))
#define MOD ((ll)(1000000861))
#define EP ((double)(1e-9))
#define LG 21
#define mul(a,b) a=((a)*(b))%MOD
using namespace std;
string s,t;
vector<pair<pair<ll,ll> ,pair<ll,ll> > > a;
vector<pair<pair<ll,ll> ,pair<ll,ll> > > b;
ll dp[2100][2100];
int main(){
#ifdef KHOKHO
freopen("in.in","r",stdin);
freopen("out.out","w",stdout);
#endif
ll n,w,l,r,d,k,c;
cin>>n>>w;
for(int i=0; i<n; i++){
cin>>k;
if(k){
cin>>l>>r>>d>>c;
a.pb({{l,r},{d,c}});
}
else {
cin>>l>>r>>d>>c;
b.pb({{l,r},{w-d,c}});
}
}
sort(a.begin(),a.end());
sort(b.begin(),b.end());
for(int i=1; i<=a.size(); i++)
for(int j=1; j<=b.size(); j++)
dp[i][j]=-MAX;
dp[0][0]=0;
ll pas=0;
for(int i=1; i<=a.size(); i++){
for(int j=1; j<=b.size(); j++){
if(b[j].fr.fr<=a[i].fr.fr&&a[i].sc.fr<=b[j].sc.fr){
for(int k=0; k<a.size(); k++){
if(a[k].fr.sc<=a[i].fr.fr)
dp[i][j]=max(dp[i][j],dp[k][j]+a[i].sc.sc);
}
}
if(b[j].fr.fr>=a[i].fr.fr&&a[i].sc.fr<=b[j].sc.fr){
for(int k=0; k<b.size(); k++){
if(b[k].fr.sc<=b[j].fr.fr)
dp[i][j]=max(dp[i][j],dp[k][j]+b[j].sc.sc);
}
}
pas=max(pas,dp[i][j]);
}
}
cout<<pas;
}
Compilation message (stderr)
mat.cpp: In function 'int main()':
mat.cpp:42:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=1; i<=a.size(); i++)
~^~~~~~~~~~
mat.cpp:43:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=1; j<=b.size(); j++)
~^~~~~~~~~~
mat.cpp:47:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=1; i<=a.size(); i++){
~^~~~~~~~~~
mat.cpp:48:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int j=1; j<=b.size(); j++){
~^~~~~~~~~~
mat.cpp:51:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k=0; k<a.size(); k++){
~^~~~~~~~~
mat.cpp:57:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int k=0; k<b.size(); k++){
~^~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |