QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#473324#186. Street LampsDimash0 2ms10012kbC++202.4kb2024-07-12 01:44:562024-07-12 01:44:56

Judging History

你现在查看的是最新测评结果

  • [2024-07-12 01:44:56]
  • 评测
  • 测评结果:0
  • 用时:2ms
  • 内存:10012kb
  • [2024-07-12 01:44:56]
  • 提交

answer

#include <bits/stdc++.h>
 
using namespace std;

typedef long long ll;
const int  N = 3e5 + 20, MOD = (int)1e9+7;

int n,q;
vector<int> t[N];
vector<pair<int,int>> qr[N];
int mn[N * 4],mx[N * 4],mod[N*4];
void assign(int v,int val){
    mx[v] = mn[v] = mod[v] = val;
}
void build(int v = 1,int tl = 1,int tr = q){
    mx[v] = mn[v] = (int)1e9;
    if(tl == tr) return;
    int tm = (tl + tr) >> 1;
    build(v+v,tl,tm);
    build(v+v+1,tm+1,tr);
}
void push(int v){
    if(mod[v]){
        assign(v+v,mod[v]);
        assign(v+v+1,mod[v]);
        mod[v]=0;
    }
}
void upd(int l,int r,int val,int v = 1,int tl = 1,int tr = q){
    if(l > r || tl > r || l > tr) return;
    if(tl >= l && tr <= r){
        assign(v,val);
    }else{
        push(v);
        int tm = (tl + tr) >> 1;
        upd(l,r,val,v+v,tl,tm);
        upd(l,r,val,v+v+1,tm+1,tr);
        mx[v] = max(mx[v + v],mx[v + v + 1]);
        mn[v] = min(mn[v + v],mn[v +v + 1]);
    }
}
int get(int l,int r,int val,int v = 1,int tl = 1,int tr = n){
    if(l > r || tl > r || l > tr || mn[v] > val) return 0;
    if(tl >= l && tr <= r && mx[v] <= val){
        return tr - tl + 1;
    }
    push(v);
    int tm = (tl + tr) >> 1;
    return get(l,r,val,v+v,tl,tm) + get(l,r,val,v+v+1,tm+1,tr);
}
ll res[N];
void test(){
    cin >> n >> q;
    for(int i = 1;i <= n;i++){
        char x;
        cin >> x;
        if(x == '0'){
            t[i].push_back(0);
        }
    }
    for(int i = 1;i <= q;i++){
        res[i] = -1;
        string tp;
        cin >> tp;
        if(tp == "toggle"){
            int a;
            cin >> a;
            t[a].push_back(i);
        }else{
            int l,r;
            cin >> l >> r;
            --r;
            qr[l].push_back({r,i});
        }
    }
    for(int i = n;i >= 1;i--){
        vector<pair<int,int>> o;
        t[i].push_back(q + 1);
        for(int j = 0;j < (int)t[i].size() - 1;j += 2){
            o.emplace_back(t[i][j],t[i][j + 1] - 1);
        }
        for(auto [l,r]:o){
            upd(l,r,i);
        }
        for(auto [r,id]:qr[i]){
            res[id] = id - get(1,id,r);
        }
    }
    for(int i = 1;i <= q;i++){
        if(res[i] != -1){
            cout << res[i] << '\n';
        }
    }
}
int main() {
    ios_base::sync_with_stdio(false);cin.tie(0);
    int t = 1; 
    // cin >> t;
    while(t--){
        test();
    }
}

詳細信息

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 20
Accepted
time: 2ms
memory: 7652kb

input:

5 7
11011
query 1 2
query 1 2
query 1 6
query 3 4
toggle 3
query 3 4
query 1 6

output:

1
2
0
0
1
2

result:

ok 6 lines

Test #2:

score: -20
Wrong Answer
time: 1ms
memory: 7732kb

input:

5 50
01001
query 1 6
toggle 3
toggle 3
toggle 2
toggle 3
toggle 2
toggle 4
query 2 6
query 2 3
query 1 3
query 3 5
toggle 3
query 2 6
query 1 5
query 2 3
query 3 6
toggle 5
toggle 1
toggle 2
toggle 4
query 1 6
query 4 5
toggle 3
query 5 6
toggle 2
query 4 6
toggle 5
toggle 5
toggle 2
query 4 5
query...

output:

0
3
8
6
6
8
9
14
11
16
18
19
21
26
26
27
31
38
38
40
41
42
43
44
46

result:

wrong answer 2nd lines differ - expected: '1', found: '3'

Subtask #2:

score: 0
Time Limit Exceeded

Test #9:

score: 0
Time Limit Exceeded

input:

100 300000
1100100000000101010010100111010001100010001100111101000010111110001101101110100100100110101010110010
query 13 14
query 42 43
toggle 64
query 78 79
toggle 85
query 35 36
toggle 35
query 4 5
toggle 5
query 4 5
query 42 43
query 35 36
query 13 14
query 14 15
toggle 15
toggle 31
query 20 21
q...

output:


result:


Subtask #3:

score: 0
Wrong Answer

Test #17:

score: 20
Accepted
time: 2ms
memory: 7744kb

input:

1000 1003
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000...

output:

0
0
0

result:

ok 3 lines

Test #18:

score: -20
Wrong Answer
time: 2ms
memory: 7776kb

input:

1000 1003
00100001101000000001000001001000100010000010010010001001001010001010101100010001000010101100000001001111000001110000010110100000100110001000000101001110000001110001000100000011001110000011010100101000000010100110100010000000110000111100100000011000100010010100000000100000000010001001110101...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

wrong answer 249th lines differ - expected: '26', found: '30'

Subtask #4:

score: 0
Wrong Answer

Test #30:

score: 0
Wrong Answer
time: 2ms
memory: 10012kb

input:

1000 1003
10111011001010101101100010101100100010100110001000000001001100111110101100110100010001111101101100110111110100011000111101100100000110110010101011101001101110111100010100100000110001010001111101001010100101011111010000001110111110001011010111101100000001001110101110011111000101101100011010...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

wrong answer 989th lines differ - expected: '0', found: '1'

Subtask #5:

score: 0
Skipped

Dependency #1:

0%