Submission #595479

#TimeUsernameProblemLanguageResultExecution timeMemory
595479DeepessonUplifting Excursion (BOI22_vault)C++17
0 / 100
58 ms360 KiB
#include <bits/stdc++.h>
#define MAX 21000
int maximo[MAX];
int bonus = MAX/2;
int main()
{
    long long N,M;
    std::cin>>N>>M;
    if(abs(M)>bonus){
        std::cout<<"impossible\n";
        return 0;
    }
    for(auto&x:maximo)x=-(1e6);
    maximo[bonus]=0;
    for(int i=-N;i<=N;++i){
        int c;
        std::cin>>c;
        for(int u=0;u!=c;++u){
            if(i>0){
                for(int j=MAX-1;j!=-1;--j){
                    if(j-i<0)continue;
                    maximo[j]=std::max(maximo[j],maximo[j-i]+1);
                }
            }else {
                for(int j=0;j!=MAX;++j){
                    if(j-i>=MAX)continue;
                    maximo[j]=std::max(maximo[j],maximo[j-i]+1);
                }
            }
        }
    }
    ///como proceder caso x=0?
    if(maximo[M+bonus]<0){
        std::cout<<"impossible\n";
        return 0;
    }
    std::cout<<maximo[M+bonus]<<"\n";
}
#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...
#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...