제출 #701337

#제출 시각아이디문제언어결과실행 시간메모리
701337angelo_torresUplifting Excursion (BOI22_vault)C++17
5 / 100
1041 ms828 KiB
#include <bits/stdc++.h> using namespace std; const int N = 63750; const int inf = 1e9; int m,l,a[300],dp[N*2+10]; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> m >> l; for(int i = -m; i <= m; ++i) cin >> a[i+50]; for(int i = -N; i <= N; ++i) dp[i+N] = -inf; dp[0+N] = 0; set<int> s; s.insert(0); for(int i = -m; i <= m; ++i){ for(int j = 0; j < a[i+50]; ++j){ if(i > 0) for(int k = N; k >= -N; k--){ if(k-i < -N || k-i > N) continue; dp[k+N] = max(dp[k+N],dp[k-i+N]+1); } else for(int k = -N; k <= N; ++k){ if(k-i < -N || k-i > N) continue; dp[k+N] = max(dp[k+N],dp[k-i+N]+1); } // for(int k = -5; k <= 5; ++k) cout << dp[N+k] << " "; // cout << "\n"; } } if(l < -N || l > N || dp[l+N] < 0){ cout << "impossible\n"; }else{ cout << dp[l+N] << "\n"; } return 0; }
#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...