LeetCode Weekly Contest 243 3問目 - Process Tasks Using Servers [1882]

Source

LeetCode Weekly Contest 243
問題文

問題概要

省略

解法

省略

cLayversion 20210607-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

int N, w[2d5], ind[2d5];

class Solution {
public:
  vector<int> assignTasks(vector<int>& servers, vector<int>& tasks) {
    dummy_main();

    int t = 0, k;
    VI res;
    set<int> av;
    set<pair<int,int>> chk;

    N = servers.size();
    rep(i,N) w[i] = servers[i], ind[i] = i;
    sortA(N,w,ind);
    rep(i,N) av.insert(i);

    rep(q, tasks.size()){
      t >?= q;
      while(chk.size() && getFirst(chk).first <= t){
        av.insert(popFirst(chk).second);
      }
      if(av.size()==0) t = getFirst(chk).first, q--, continue;
      k = popFirst(av);
      res.push_back(ind[k]);
      chk.insert({t+tasks[q], k});
    }

    return res;
  }
};

Current time: 2024年04月25日04時52分29秒
Last modified: 2021年06月07日19時37分32秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: