Submission #1170448

#TimeUsernameProblemLanguageResultExecution timeMemory
1170448samiaBouquet (EGOI24_bouquet)C++20
28 / 100
3096 ms2916 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int>v;
vector<int>slm;
int f[200005];
int dp(int n){
    
    if(f[n]==-1){
        int x=0;
        for(int so=0;so<n-v[n];so++){
            if(slm[so]+so<n){
            if(f[so]==-1){dp(so);}
            x=max(x,f[so]);}
         
        }

        f[n]=x+1;
    }
   // cout<<f[n]<<" "<<n<<endl;
    
    return f[n];
}



int main() {
int n;
cin>>n;

int x,y;
int ans=n;
while(n--){
   
    cin>>x>>y;
     v.push_back(x);
          slm.push_back(y);

}

for(int so=0;so<=ans;so++){
    f[so]=-1;
}
f[0]=1;

int an=0;
for(int so=0;so<ans;so++){
 if(f[so]==-1){dp(so);}
 an=max(an,f[so]);
}

cout<<an<<endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...