| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1292618 | Minbaev | 공장들 (JOI14_factories) | C++20 | 0 ms | 0 KiB |
#include "factories.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define ar array
const int NN = 500000 + 5;
struct Bit {
int sz;
vector<long long> t, bn;
Bit (int n = 0){
this->sz = n;
t.assign(sz * 4 + 5, 0);
bn.assign(sz * 4 + 5, -1LL);
}
void push(int tl, int tr, int v){
if(bn[v] == -1LL) return;
if(tl != tr){
bn[v*2] = bn[v];
bn[v*2+1] = bn[v];
}
t[v] = (long long)(tr - tl + 1) * bn[v];
bn[v] = -1LL;
}
void update(int tl, int tr, int v, int l, int r, long long val){
push(tl, tr, v);
if(r < l || tr < l || r < tl) return;
if(l <= tl && tr <= r){
bn[v] = val;
