Submission #918957

#TimeUsernameProblemLanguageResultExecution timeMemory
918957jpfr12Nizin (COCI16_nizin)C++14
60 / 100
35 ms65536 KiB
#include <iostream> #include <stdio.h> #include <algorithm> #include <vector> #include <queue> #include <deque> #include <set> #include <string> #include <map> #include <math.h> #include <cmath> #include <climits> #include <unordered_map> #include <unordered_set> #include <assert.h> #include <fstream> #include <bitset> #include <iomanip> typedef long long ll; using namespace std; int MOD = (int)1e9; int MAXN = 1e6; //classes //global vector<vector<int>> dp; vector<int> vec; int sol(int left, int right, int lvalue, int rvalue){ if(dp[left][right] != -1) return dp[left][right]; else if(left+1 == right) return lvalue != rvalue; else if(left == right) return 0; if(lvalue == rvalue) dp[left][right] = sol(left+1, right-1, vec[left+1], vec[right-1]); else{ dp[left][right] = 1+ min(sol(left+1, right, lvalue+ vec[left+1], rvalue), sol(left, right-1, lvalue, rvalue+vec[right-1])); } return dp[left][right]; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); //ifstream fin("input.txt"); //ofstream fout("output.txt"); //stop int n; cin >> n; vec.resize(n); dp.resize(n, vector<int>(n, -1)); for(int& i: vec) cin >> i; cout << sol(0, n-1, vec[0], vec[n-1]) << '\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...