제출 #1185221

#제출 시각아이디문제언어결과실행 시간메모리
1185221ericl23302Feast (NOI19_feast)C++20
컴파일 에러
0 ms0 KiB
#include <iostream> #include <vector> #include <algorithm> #define int long long using namespace std; // int code(int oriN, int k, vector<int> &oriVals) { // vector<int> vals; // int cur = 0; // for (int &temp : oriVals) { // if (cur == 0 || ((temp < 0) && (cur < 0)) || ((temp > 0) && (cur > 0))) cur += temp; // else { // vals.push_back(cur); // cur = temp; // } // } // if (cur) vals.push_back(cur); // int newN = vals.size(); // static int dp[2005][2005][2] {0}; // for (int i = 1; i <= newN; ++i) { // for (int j = 1; j <= k; ++j) { // dp[i][j][1] = max(dp[i - 1][j][1], dp[i - 1][j - 1][0]) + vals[i - 1]; // dp[i][j][0] = max(dp[i - 1][j][1], dp[i - 1][j][0]); // } // } // return max(dp[newN][k][1], dp[newN][k][0]); // } // int bruteforce(int oriN, int k, vector<int> &oriVals) { // int res = 0; // for (int &i : oriVals) res += i; // return res; // } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); int oriN, k; cin >> oriN >> k; vector<int> vals; int cur = 0; for (int i = 0; i < oriN; ++i) { int temp; cin >> temp; if (cur == 0 || ((temp < 0) && (cur < 0)) || ((temp > 0) && (cur > 0))) cur += temp; else { vals.push_back(cur); cur = temp; } } if (cur) vals.push_back(cur); int newN = vals.size(); for (int i = 1; i <= newN; ++i) { for (int j = 1; j <= k; ++j) { dp[i][j][1] = max(dp[i - 1][j][1], dp[i - 1][j - 1][0]) + vals[i - 1]; dp[i][j][0] = max(dp[i - 1][j][1], dp[i - 1][j][0]); } } if (newN == 1 && max(dp[newN][k][1], dp[newN][k][0]) != vals[0]) return -1; cout << max(dp[newN][k][1], dp[newN][k][0]) << '\n'; // srand(time({})); // for (int i = 0; i < 100; ++i) { // cout << "Test: " << i + 1 << '\n'; // int n = rand() % 100 + 1, k = rand() % 100 + 1; // vector<int> oriVals(n); // cout << "Vals: "; // for (int i = 0; i < n; ++i) oriVals[i] = rand() % 100'000, cout << oriVals[i] << ' '; // cout << '\n'; // int codeRes = code(n, k, oriVals), bruteforceRes = bruteforce(n, k, oriVals); // if (codeRes == bruteforceRes) cout << "Test Success.\n"; // else { // cout << "Test Failed.\n"; // cout << "Code: " << codeRes << '\n'; // cout << "Bruteforce: " << bruteforceRes << '\n'; // break; // } // } return 0; }

컴파일 시 표준 에러 (stderr) 메시지

feast.cpp: In function 'int main()':
feast.cpp:60:13: error: 'dp' was not declared in this scope
   60 |             dp[i][j][1] = max(dp[i - 1][j][1], dp[i - 1][j - 1][0]) + vals[i - 1];
      |             ^~
feast.cpp:65:26: error: 'dp' was not declared in this scope
   65 |     if (newN == 1 && max(dp[newN][k][1], dp[newN][k][0]) != vals[0]) return -1;
      |                          ^~
feast.cpp:66:17: error: 'dp' was not declared in this scope
   66 |     cout << max(dp[newN][k][1], dp[newN][k][0]) << '\n';
      |                 ^~