码迷,mamicode.com
首页 > 其他好文 > 详细

Lpl and Energy-saving Lamps - 计蒜客

时间:2018-09-02 02:06:08      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:pre   first   return   +=   oid   color   date   src   continue   

技术分享图片

const int N = 100005;

int n, m, q, flag, cnt;
int Min[4 * N], d[N];

void Pushup(int root) {
    Min[root] = min(Min[lson], Min[rson]);
}

void Build(int l, int r, int root) {
    if (l == r) {
        sc(Min[root]);
        return;
    }
    int mid = (l + r) >> 1;
    Build(l, mid, lson);
    Build(mid + 1, r, rson);
    Pushup(root);
}

void Update(int l, int r, int root, int x) {
    if (Min[root] > x) return;
    if (l == r) {
        flag = Min[root];
        Min[root] = INF32;
        cnt++;
        return;
    }
    int mid = (l + r) >> 1;
    if (Min[lson] > x) Update(mid + 1, r, rson, x);
    if (Min[lson] <= x) Update(l, mid, lson, x);
    Pushup(root);
}

P ans[N];

int main()
{
    sc(n), sc(m);
    Build(1, n, 1);
    sc(q);
    Rep(i, 1, q) sc(d[i]);

    int tp = 0;
    Rep(i, 1, q) {
        if (Min[1] == INF32) {
            ans[i].first = cnt;
            ans[i].second = tp;
            continue;
        }
        tp += m;
        while(1) {
            flag = 0;
            Update(1, n, 1, tp);
            if (!flag) break;
            tp -= flag;
        }

        ans[i].first = cnt;
        ans[i].second = tp;
    }

    Rep(i, 1, q) printf("%d %d\n", ans[d[i]].first, ans[d[i]].second);
    return 0;
}

 

Lpl and Energy-saving Lamps - 计蒜客

标签:pre   first   return   +=   oid   color   date   src   continue   

原文地址:https://www.cnblogs.com/zgglj-com/p/9572226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!