提交记录 17955


用户 题目 状态 得分 用时 内存 语言 代码长度
RBTree 1001. 测测你的排序 Compile Error 0 0 ns 0 KB C++11 849 B
提交时间 评测时间
2022-08-15 12:23:22 2022-08-15 12:23:23
#pragma GCC optimize("Ofast")
#include <iostream>
#include <stack>

using namespace std;
using tp = long long;


class Gen {
  unsigned nxt;

 public:
  Gen(unsigned _seed) : nxt(_seed) {}

  int get() { return nxt = nxt * 1103515245 + 12345; }
} gen(0);

struct SNode {
  tp val, id;

  SNode() = default;
  SNode(tp _val, tp _id) : val(_val), id(_id) {}
};

stack<SNode> s;

void add(tp val) {
  static tp cnt = 0;
  s.emplace(val, cnt++);
}

void add() {
  add(gen.get());
}

signed main() {
  tp n = 50000000, sum = 0, sed = 114514;
  gen = Gen(sed);
  add();
  for (tp i = 1; i < n; ++i) {
    tp val = gen.get();
    ++sum;
    if (s.size() && val > s.top().val) {
      s.pop();
      while (s.size() && val > s.top().val) {
        ++sum;
        s.pop();
      }
      sum += !s.empty();
    }
    add(val);
  }
  cout << sum;
  return 0;
}

CompilationN/AN/ACompile ErrorScore: N/A


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-16 17:31:20 | Loaded in 0 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠