Submission #783689

# Submission time Handle Problem Language Result Execution time Memory
783689 2023-07-15T08:32:30 Z boris_mihov Potatoes and fertilizers (LMIO19_bulves) C++17
0 / 100
554 ms 1288 KB
#include <unordered_set>
#include <unordered_map>
#include <algorithm>
#include <iostream>
#include <numeric>
#include <cassert>
#include <vector>
#include <stack>
#include <queue>
#include <map>
#include <set>

typedef long long llong;
const int MAXN = 500000 + 10;
const int MAXAB = 30000 + 10;
const llong INF = 1e18;
const int INTINF = 1e9;

int abs(int num)
{
    if (num < 0) return -num;
    return num;
}

llong abs(llong num)
{
    if (num < 0) return -num;
    return num;
}

int n;
int sum;
int c[MAXN];
llong dp[2][5*MAXAB];

void solve()
{
    assert(sum > -MAXAB && sum < MAXAB);
    for (int i = 0 ; i < 2 * MAXAB ; ++i)
    {
        dp[(n + 1) & 1][i] = INF;
    }

    dp[(n + 1) & 1][MAXAB] = 0;
    for (int pos = n ; pos >= 1 ; --pos)
    {
        for (int bal = 2 * MAXAB - 1 ; bal >= 0 ; --bal)
        {
            dp[pos & 1][bal] = INF;
            if (bal + 1 < 2 * MAXAB)
            {
                dp[pos & 1][bal] = dp[pos & 1][bal + 1];
            }

            if (bal - c[pos] >= 0)
            {
                dp[pos & 1][bal] = std::min(dp[pos & 1][bal], dp[(pos + 1) & 1][bal - c[pos]] + abs(bal - c[pos] - MAXAB));
            }
        }
    }

    std::cout << dp[1][MAXAB] << '\n';
}

void input()
{
    std::cin >> n;
    for (int i = 1 ; i <= n ; ++i)
    {
        std::cin >> c[i];
        int val; std::cin >> val;
        c[i] -= val;
        sum += c[i];
    }
}

void fastIOI()
{
    std::ios_base :: sync_with_stdio(0);
    std::cout.tie(nullptr);
    std::cin.tie(nullptr);
}

int main()
{
    fastIOI();
    input();
    solve();

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1236 KB Output is correct
2 Correct 554 ms 1288 KB Output is correct
3 Incorrect 550 ms 1236 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1236 KB Output is correct
2 Correct 554 ms 1288 KB Output is correct
3 Incorrect 550 ms 1236 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1236 KB Output is correct
2 Correct 554 ms 1288 KB Output is correct
3 Correct 2 ms 1236 KB Output is correct
4 Incorrect 186 ms 1272 KB Output isn't correct
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1236 KB Output is correct
2 Correct 554 ms 1288 KB Output is correct
3 Incorrect 550 ms 1236 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1236 KB Output is correct
2 Correct 554 ms 1288 KB Output is correct
3 Incorrect 550 ms 1236 KB Output isn't correct
4 Halted 0 ms 0 KB -