LeetCode Biweekly Contest 36 4問目 - Find Servers That Handled Most Number of Requests [1606]

Source

LeetCode Biweekly Contest 36
問題文

問題概要

省略

解法

省略

cLayversion 20201121-1)のコード

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

#define main dummy_main
{}
#undef main

int doit[1d5];

class Solution {
public:
  vector<int> busiestServers(int n, vector<int>& arrival, vector<int>& load) {
    int mx, x, y, k;
    set<int> ave;
    set<int>::iterator it;
    set<pair<int,int>> work;
    vector<int> res;

    rep(i,n) doit[i] = 0;
    rep(i,n) ave.insert(i);

    rep(i,arrival.size()){
      x = arrival[i];
      y = arrival[i] + load[i];
      while(work.size() && work.begin()->first <= x){
        ave.insert(work.begin()->second);
        work.erase(work.begin());
      }

      if(ave.size()==0) continue;
      it = ave.lower_bound(i%n);
      if(it == ave.end()) it = ave.begin();
      k = *it;
      ave.erase(it);

      work.insert(make_pair(y, k));
      doit[k]++;
    }

    mx = max(doit(n));
    rep(i,n) if(doit[i]==mx) res.push_back(i);
    return res;
  }
};

Current time: 2024年04月26日00時53分55秒
Last modified: 2020年11月22日17時32分18秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: