제출 #1351249

#제출 시각아이디문제언어결과실행 시간메모리
1351249mamabearInspections (NOI23_inspections)C++20
0 / 100
0 ms344 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <map>

using namespace std;

typedef long long ll;

struct Node {
    ll task_id; 
};

vector<Node> tree;
map<ll, ll> gap_counts;

void update(int node, int start, int end, int l, int r, int new_task, vector<ll>& task_r, vector<ll>& task_start_days) {
    if (start > end || start > r || end < l) return;

    if (start >= l && end <= r && tree[node].task_id != -1) {
        if (tree[node].task_id != 0) {
            ll i = tree[node].task_id;
            ll gap = task_r[i-1] - l + (task_start_days[new_task-1] - (task_start_days[i-1] + (task_r[i-1] - l + 1))); 
        }
        tree[node].task_id = new_task;
        return;
    }

    int mid = (start + end) / 2;
    if (tree[node].task_id != -1) {
        tree[2 * node].task_id = tree[2 * node + 1].task_id = tree[node].task_id;
        tree[node].task_id = -1;
    }

    update(2 * node, start, mid, l, r, new_task, task_r, task_start_days);
    update(2 * node + 1, mid + 1, end, l, r, new_task, task_r, task_start_days);
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int n, m, q;
    if (!(cin >> n >> m >> q)) return 0;

    vector<pair<int, int>> tasks(m);
    vector<ll> task_start_days(m + 1, 0);
    for (int i = 0; i < m; ++i) {
        cin >> tasks[i].first >> tasks[i].second;
        ll duration = (ll)tasks[i].second - tasks[i].first + 1;
        task_start_days[i + 1] = task_start_days[i] + duration;
    }

    vector<ll> s_values(q);
    for (int i = 0; i < q; ++i) cin >> s_values[i];

    return 0;
}
#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...