Submission #988055

#TimeUsernameProblemLanguageResultExecution timeMemory
988055vjudge1Feast (NOI19_feast)C++17
18 / 100
1042 ms11804 KiB
//Code by Patcas Csaba aka SleepyOverlord #include <vector> #include <array> #include <string> #include <set> #include <map> #include <unordered_set> #include <unordered_map> #include <queue> #include <bitset> #include <stack> #include <list> #include <numeric> #include <algorithm> #include <random> #include <chrono> #include <cstdio> #include <fstream> #include <iostream> #include <sstream> #include <iomanip> #include <climits> #include <cctype> #include <cmath> #include <ctime> #include <cassert> using namespace std; #define ULL unsigned long long #define LL long long #define PII pair <int, int> #define PLL pair <LL, LL> #define VB vector <bool> #define VI vector <int> #define VLL vector <LL> #define VD vector <double> #define VS vector <string> #define VPII vector <pair <int, int> > #define VVI vector < VI > #define VVLL vector < VLL > #define VVB vector < VB > #define SI set < int > #define USI unordered_set <int> #define MII map <int, int> #define UMII unordered_map <int, int> #define FORN(i, n) for(int i = 0; i < (n); ++i) #define FOR(i, a, b) for(int i = (a); i <= (b); ++i) #define FORD(i, a, b) for(int i = (a); i >= (b); --i) #define MX(x, y) x = max(x, y) #define MN(x, y) x = min(x, y) #define SZ size() #define BG begin() #define EN end() #define CL clear() #define X first #define Y second #define RS resize #define PB push_back #define MP make_pair #define ALL(x) x.begin(), x.end() #define INS insert #define ER erase #define CNT count template <class T> ostream& operator <<(ostream & os, const vector<T> &vec) { for (int i = 0; i < vec.size() - 1; ++i) os << vec[i] << ' '; return os << vec[vec.size() - 1]; } template <class T1, class T2> ostream& operator <<(ostream & os, const pair<T1, T2> &p) { return os << p.X << " " << p.Y; } template <typename T> void pr(T var1) { cout << var1 << '\n'; } template <typename T, typename... Types> void pr(T var1, Types... var2) { cout << var1; pr(var2...); } void in(int &n, VI &a) //array of ints { cin >> n; a.CL, a.RS(n + 1); FOR(i, 1, n) cin >> a[i]; } void in(int &n, VS &a) //array of strings { cin >> n; a.CL, a.RS(n + 1); FOR(i, 1, n) cin >> a[i]; } void in(int &n, VPII &a) //array of pairs { cin >> n; a.CL, a.RS(n + 1); FOR(i, 1, n) cin >> a[i].X >> a[i].Y; } void in(int &n, int &m, VVI &g) //unweighted graph { cin >> n >> m; g.CL, g.RS(n + 1); FOR(i, 1, n) { int x, y; cin >> x >> y; g[x].PB(y); g[y].PB(x); } } void in(int &n, VVI &g) //unweighted tree { cin >> n; g.CL, g.RS(n + 1); FOR(i, 1, n - 1) { int x, y; cin >> x >> y; g[x].PB(y); g[y].PB(x); } } void in(int &n, int &m, vector <VPII> &g) //weighted graph { cin >> n >> m; g.CL, g.RS(n + 1); FOR(i, 1, n) { int x, y, z; cin >> x >> y >> z; g[x].PB({y, z}); g[y].PB({x, z}); } } void in(int &n, vector <VPII> &g) //weighted tree { cin >> n; g.CL, g.RS(n + 1); FOR(i, 1, n - 1) { int x, y, z; cin >> x >> y >> z; g[x].PB({y, z}); g[y].PB({x, z}); } } int n, k; VI a; vector <VLL> dp; int main() { #ifdef AT_HOME freopen("a.in", "r", stdin); freopen("a.out", "w", stdout); #endif cin >> n >> k; a.RS(n + 1); FOR(i, 1, n) cin >> a[i]; dp.RS(2, VLL(n + 1)); FOR(i, 1, k) { LL sum = 0, mx = 0; FOR(j, 1, n) { sum += a[j]; if (sum < 0) sum = 0; dp[i & 1][j] = dp[i & 1][j - 1]; MX(dp[i & 1][j], mx + sum); MX(mx, dp[i & 1 ^ 1][j]); } } pr(dp[k & 1][n]); return 0; }

Compilation message (stderr)

feast.cpp: In function 'int main()':
feast.cpp:192:16: warning: suggest parentheses around arithmetic in operand of '^' [-Wparentheses]
  192 |    MX(mx, dp[i & 1 ^ 1][j]);
      |              ~~^~~
feast.cpp:54:29: note: in definition of macro 'MX'
   54 | #define MX(x, y) x = max(x, y)
      |                             ^
#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...