답안 #712354

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
712354 2023-03-18T16:27:35 Z danikoynov 사탕 분배 (IOI21_candies) C++17
3 / 100
5000 ms 28172 KB
#include "candies.h"

#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int maxn = 2e5 + 10;
const ll inf = 1e18;

int n, q;

vector < int > s;
ll pref[maxn];
vector < int > add[maxn], rem[maxn];
vector<int> distribute_candies(vector<int> c, vector<int> l,
                               vector<int> r, vector<int> v)
{
    n = c.size();
    q = l.size();
    s.resize(n, 0);
    for (int i = 0; i < q; i ++)
    {
        add[l[i]].push_back(i);
        rem[r[i]].push_back(i);
    }

    for (int i = 0; i < n; i ++)
    {

        pref[0] = inf;
        pref[1] = 0;
        for (int j = 0; j < q; j ++)
        {
            pref[j + 2] = pref[j + 1];
            if (l[j] <= i && r[j] >= i)
            {
                ///cout << "here" << endl;
                pref[j + 2] += v[j];
            }
        }
        /**for (int j = 0; j < q + 2; j ++)
            cout << pref[j] << " ";
        cout << endl;*/
        ll max_height = pref[q + 1];
        ll min_height = pref[q + 1];
        int last = q + 1;
        for (int j = q; j >= 0; j --)
        {
            max_height = max(max_height, pref[j]);
            min_height = min(min_height, pref[j]);
            ///cout << i << " " << max_height << " " << min_height << endl;
            last = j;
            if (max_height - min_height > c[i])
                break;
        }

        if (max_height == pref[last])
            s[i] = pref[q + 1] - min_height;
        else
            s[i] = pref[q + 1] - (max_height - c[i]);

    }

    return s;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 9684 KB Output is correct
2 Correct 5 ms 9708 KB Output is correct
3 Correct 6 ms 9812 KB Output is correct
4 Correct 8 ms 9816 KB Output is correct
5 Correct 18 ms 9848 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 5061 ms 25476 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 9684 KB Output is correct
2 Correct 2432 ms 21580 KB Output is correct
3 Correct 1531 ms 16336 KB Output is correct
4 Execution timed out 5058 ms 28172 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 9684 KB Output is correct
2 Correct 6 ms 9684 KB Output is correct
3 Correct 1208 ms 20328 KB Output is correct
4 Correct 1223 ms 14224 KB Output is correct
5 Execution timed out 5025 ms 22768 KB Time limit exceeded
6 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 9684 KB Output is correct
2 Correct 5 ms 9708 KB Output is correct
3 Correct 6 ms 9812 KB Output is correct
4 Correct 8 ms 9816 KB Output is correct
5 Correct 18 ms 9848 KB Output is correct
6 Execution timed out 5061 ms 25476 KB Time limit exceeded
7 Halted 0 ms 0 KB -