Submission #1118137

#TimeUsernameProblemLanguageResultExecution timeMemory
1118137overwatch9Nizin (COCI16_nizin)C++17
60 / 100
135 ms65536 KiB
#include <bits/stdc++.h> using namespace std; int n; vector <int> nums; vector <vector <int>> dp; int solve(int l, int r) { if (l >= r) return 0; if (dp[l][r] != -1) return dp[l][r]; int ans = 1e9; if (nums[l] == nums[r]) ans = solve(l+1, r-1); else { nums[l+1] += nums[l]; ans = min(ans, solve(l+1, r) + 1); nums[l+1] -= nums[l]; nums[r-1] += nums[r]; ans = min(ans, solve(l, r-1) + 1); nums[r-1] -= nums[r]; } dp[l][r] = ans; return ans; } int main() { cin >> n; nums.resize(n); for (int i = 0; i < n; i++) cin >> nums[i]; dp = vector <vector <int>> (n, vector <int> (n, -1)); cout << solve(0, n-1) << '\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...