답안 #1079788

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1079788 2024-08-29T01:45:48 Z trMatherz Feast (NOI19_feast) C++17
12 / 100
562 ms 26916 KB
#include <iostream> //cin, cout

/*
#include <fstream>
std::ifstream cin ("ex.in");
std::ofstream cout ("ex.out");
*/




// includes
#include <cmath> 
#include <set>
#include <map>
#include <queue>
#include <string>
#include <vector>
#include <array>
#include <algorithm>
#include <numeric>
#include <iomanip>
#include <unordered_set>
#include <stack>
#include <ext/pb_ds/assoc_container.hpp>
#include <random>
#include <chrono>
#include <bitset>
#include <complex>


//usings 
using namespace std;
using namespace __gnu_pbds;


// misc
#define ll long long
#define ld long double
#define pb push_back
#define pq priority_queue
#define ub upper_bound
#define lb lower_bound
template<typename T, typename U> bool emin(T &a, const U &b){ return b < a ? a = b, true : false; }
template<typename T, typename U> bool emax(T &a, const U &b){ return b > a ? a = b, true : false; }
typedef uint64_t hash_t;

// vectors
#define vi vector<int>
#define vvi vector<vi>
#define vvvi vector<vvi>
#define vpii vector<pair<int, int>>
#define vvpii vector<vector<pair<int, int>>>
#define vppipi vector<pair<int, pair<int, int>>>
#define vl vector<ll>
#define vvl vector<vl>
#define vvvl vector<vvl>
#define vpll vector<pair<ll, ll>>
#define vvpll vector<vpll>
#define vb vector<bool>
#define vvb vector<vb>
#define vs vector<string>
#define sz(x) (int)x.size()
#define rz resize
#define all(x) x.begin(), x.end()
#define vc vector<char>
#define vvc vector<vc>


// pairs
#define pii pair<int, int>
#define pll pair<ll, ll>
#define mp make_pair
#define f first
#define s second

// sets
#define si set<int>
#define sl set<ll>
#define ss set<string>
#define in insert
template <class T> using iset = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;

// maps
#define mii map<int, int>
#define mll map<ll, ll>

// loops
#define FR(x, z, y) for (int x = z; x < y; x++)
#define FRE(x, z, y) FR(x, z, y + 1)
#define F(x, y) FR(x, 0, y)
#define FE(x, y) F(x, y + 1)
#define A(x, y) for(auto &x : y)


vl a; 
int n, k;
pll plop(ll j) {
    vvpll dp(n + 1, vpll(2, {(ll) -1e12, (ll) -1e12}));
    dp[0][0] = {0, 0}; 
    F(i, n){ 
        dp[i + 1][0] = max(dp[i][0], dp[i][1]);
        dp[i + 1][1] = max(mp(dp[i][1].f + a[i], dp[i][1].s), mp(dp[i][0].f + a[i] - j, dp[i][0].s + 1)); 
    }
    return max(mp(dp[n][0].f + j * dp[n][0].s, dp[n][0].s), mp(dp[n][1].f + j * dp[n][1].s, dp[n][1].s)); 
}

int main(){
    cin >> n >> k; 
    a = vl(n); A(u, a) cin >> u;
    ll l = 0, r = (ll) 1e9 + 7; 
    while(l < r) {
        ll m = (l + r) / 2; 
        if(plop(m).s <= k) r = m; 
        else l = m + 1; 
    }
    cout << plop(l).f; 
}
# 결과 실행 시간 메모리 Grader output
1 Correct 530 ms 26048 KB Output is correct
2 Correct 535 ms 26532 KB Output is correct
3 Correct 532 ms 26824 KB Output is correct
4 Correct 515 ms 26652 KB Output is correct
5 Correct 531 ms 26520 KB Output is correct
6 Correct 498 ms 26132 KB Output is correct
7 Correct 512 ms 26016 KB Output is correct
8 Correct 522 ms 26840 KB Output is correct
9 Correct 551 ms 26160 KB Output is correct
10 Correct 514 ms 26628 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 554 ms 24512 KB Output is correct
2 Correct 521 ms 25524 KB Output is correct
3 Correct 521 ms 24444 KB Output is correct
4 Correct 505 ms 24736 KB Output is correct
5 Correct 533 ms 26080 KB Output is correct
6 Correct 485 ms 24420 KB Output is correct
7 Correct 515 ms 25100 KB Output is correct
8 Correct 541 ms 26916 KB Output is correct
9 Correct 541 ms 26220 KB Output is correct
10 Correct 511 ms 24952 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 562 ms 26864 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1 ms 348 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 530 ms 26048 KB Output is correct
2 Correct 535 ms 26532 KB Output is correct
3 Correct 532 ms 26824 KB Output is correct
4 Correct 515 ms 26652 KB Output is correct
5 Correct 531 ms 26520 KB Output is correct
6 Correct 498 ms 26132 KB Output is correct
7 Correct 512 ms 26016 KB Output is correct
8 Correct 522 ms 26840 KB Output is correct
9 Correct 551 ms 26160 KB Output is correct
10 Correct 514 ms 26628 KB Output is correct
11 Correct 554 ms 24512 KB Output is correct
12 Correct 521 ms 25524 KB Output is correct
13 Correct 521 ms 24444 KB Output is correct
14 Correct 505 ms 24736 KB Output is correct
15 Correct 533 ms 26080 KB Output is correct
16 Correct 485 ms 24420 KB Output is correct
17 Correct 515 ms 25100 KB Output is correct
18 Correct 541 ms 26916 KB Output is correct
19 Correct 541 ms 26220 KB Output is correct
20 Correct 511 ms 24952 KB Output is correct
21 Incorrect 562 ms 26864 KB Output isn't correct
22 Halted 0 ms 0 KB -