Please sign in first.
Submission #67751603
Source Code Expand
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#ifndef ONLINE_JUDGE
#define _GLIBCXX_DEBUG
#endif
#include <bits/stdc++.h>
#include <atcoder/segtree>
using namespace std;
#define rep(i, N) for (int i = 0; i < N; i++)
#define repn(i, n, N) for (int i = n; i < N; i++)
#define fore(i, x) for(auto i : x)
#define rep1(i, N) for(int i = 1; i <= N; i++)
#define ll long long
#define ull unsigned long long
template<class T> inline bool chmin(T& a, T b){ if(a > b){ a = b; return 1;} return 0;}
template<class T> inline bool chmax(T& a, T b){ if (a < b){a = b; return 1;} return 0;}
const long long INF_LL = 1LL << 60;
const int INF_I = 1 << 30;
int dy[4] = {0, 1, 0, -1};
int dx[4] = {1, 0, -1, 0};
int RandInt(int a, int b){
return a + (ll)rand() % (ll)(b - a + 1);
}
double RandDouble(){
return 1.0 * rand() / RAND_MAX;
}
void overflow(ll a) {if(a < 0) throw;}
struct S{
int l_len, r_len;
char l, r;
int mx_len;
int len;
};
S e(){
return {0, 0, 'A', 'A', 0, 0};
};
S op(S a, S b){
S s;
s.len = a.len + b.len;
//真ん中でつながる
if(a.r == b.l){
s.mx_len =max({a.mx_len, b.mx_len, a.r_len + b.l_len});
if(a.r_len == a.l_len && a.r_len == a.len){
s.l_len = a.r_len + b.l_len;
s.l = a.l;
}
else{
s.l_len = a.l_len;
s.l = a.l;
}
if(b.l_len == b.r_len && b.l_len == b.len){
s.r_len = b.r_len + a.r_len;
s.r = b.r;
}else{
s.r_len = b.r_len;
s.r = b.r;
}
}else{
s.mx_len = max(a.mx_len, b.mx_len);
s.l_len = a.l_len;
s.l = a.l;
s.r_len = b.r_len;
s.r = b.r;
}
return s;
}
int main(){
int N, Q; cin >> N >> Q;
string s; cin >> s;
vector<S> v(N);
rep(i, N){
S a = {1, 1, s[i], s[i], 1, 1};
v[i] = a;
}
atcoder::segtree<S, op, e> seg(v);
for(;Q--;){
int q; cin >> q;
if(q == 1){
int i; char x; cin >> i >> x; i--;
S a = {1, 1, x, x, 1, 1};
seg.set(i, a);
}
if(q == 2){
int l, r; cin >> l >> r;
l--;
S a = seg.prod(l, r);
cout << a.mx_len << "\n";
}
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Max Combo |
| User | Saki1103 |
| Language | C++ 20 (gcc 12.2) |
| Score | 525 |
| Code Size | 2465 Byte |
| Status | AC |
| Exec Time | 733 ms |
| Memory | 34848 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 525 / 525 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt |
| All | evil_01.txt, evil_02.txt, evil_03.txt, evil_04.txt, evil_05.txt, evil_06.txt, evil_07.txt, evil_08.txt, evil_09.txt, evil_10.txt, evil_11.txt, evil_12.txt, evil_13.txt, evil_14.txt, evil_15.txt, evil_16.txt, evil_17.txt, evil_18.txt, evil_19.txt, evil_20.txt, evil_21.txt, evil_22.txt, evil_23.txt, evil_24.txt, evil_25.txt, evil_26.txt, evil_27.txt, evil_28.txt, sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| evil_01.txt | AC | 544 ms | 33956 KiB |
| evil_02.txt | AC | 560 ms | 33936 KiB |
| evil_03.txt | AC | 540 ms | 33996 KiB |
| evil_04.txt | AC | 563 ms | 34104 KiB |
| evil_05.txt | AC | 582 ms | 34004 KiB |
| evil_06.txt | AC | 612 ms | 33872 KiB |
| evil_07.txt | AC | 547 ms | 33972 KiB |
| evil_08.txt | AC | 566 ms | 33972 KiB |
| evil_09.txt | AC | 577 ms | 33972 KiB |
| evil_10.txt | AC | 609 ms | 34044 KiB |
| evil_11.txt | AC | 584 ms | 33952 KiB |
| evil_12.txt | AC | 615 ms | 34012 KiB |
| evil_13.txt | AC | 577 ms | 34012 KiB |
| evil_14.txt | AC | 598 ms | 33960 KiB |
| evil_15.txt | AC | 540 ms | 34000 KiB |
| evil_16.txt | AC | 571 ms | 33868 KiB |
| evil_17.txt | AC | 576 ms | 33972 KiB |
| evil_18.txt | AC | 601 ms | 33832 KiB |
| evil_19.txt | AC | 574 ms | 33972 KiB |
| evil_20.txt | AC | 608 ms | 33952 KiB |
| evil_21.txt | AC | 576 ms | 33996 KiB |
| evil_22.txt | AC | 591 ms | 33948 KiB |
| evil_23.txt | AC | 580 ms | 34016 KiB |
| evil_24.txt | AC | 592 ms | 34008 KiB |
| evil_25.txt | AC | 553 ms | 33972 KiB |
| evil_26.txt | AC | 551 ms | 34044 KiB |
| evil_27.txt | AC | 501 ms | 34044 KiB |
| evil_28.txt | AC | 569 ms | 33968 KiB |
| sample_01.txt | AC | 1 ms | 3468 KiB |
| sample_02.txt | AC | 1 ms | 3460 KiB |
| test_01.txt | AC | 583 ms | 33960 KiB |
| test_02.txt | AC | 577 ms | 34004 KiB |
| test_03.txt | AC | 573 ms | 33972 KiB |
| test_04.txt | AC | 572 ms | 34016 KiB |
| test_05.txt | AC | 564 ms | 34044 KiB |
| test_06.txt | AC | 583 ms | 34040 KiB |
| test_07.txt | AC | 578 ms | 34040 KiB |
| test_08.txt | AC | 579 ms | 33968 KiB |
| test_09.txt | AC | 629 ms | 33968 KiB |
| test_10.txt | AC | 628 ms | 34020 KiB |
| test_11.txt | AC | 626 ms | 34004 KiB |
| test_12.txt | AC | 627 ms | 33872 KiB |
| test_13.txt | AC | 626 ms | 33968 KiB |
| test_14.txt | AC | 629 ms | 34000 KiB |
| test_15.txt | AC | 629 ms | 33960 KiB |
| test_16.txt | AC | 626 ms | 33972 KiB |
| test_17.txt | AC | 619 ms | 34064 KiB |
| test_18.txt | AC | 625 ms | 33948 KiB |
| test_19.txt | AC | 713 ms | 3432 KiB |
| test_20.txt | AC | 713 ms | 3512 KiB |
| test_21.txt | AC | 725 ms | 3592 KiB |
| test_22.txt | AC | 729 ms | 3596 KiB |
| test_23.txt | AC | 726 ms | 3724 KiB |
| test_24.txt | AC | 723 ms | 3636 KiB |
| test_25.txt | AC | 722 ms | 3500 KiB |
| test_26.txt | AC | 727 ms | 3600 KiB |
| test_27.txt | AC | 722 ms | 3488 KiB |
| test_28.txt | AC | 722 ms | 3604 KiB |
| test_29.txt | AC | 733 ms | 34848 KiB |
| test_30.txt | AC | 731 ms | 34784 KiB |
| test_31.txt | AC | 600 ms | 33952 KiB |
| test_32.txt | AC | 600 ms | 33964 KiB |
| test_33.txt | AC | 605 ms | 34016 KiB |
| test_34.txt | AC | 602 ms | 34008 KiB |
| test_35.txt | AC | 598 ms | 34012 KiB |
| test_36.txt | AC | 603 ms | 34008 KiB |
| test_37.txt | AC | 604 ms | 33976 KiB |
| test_38.txt | AC | 602 ms | 33876 KiB |
| test_39.txt | AC | 605 ms | 33948 KiB |
| test_40.txt | AC | 600 ms | 33988 KiB |
| test_41.txt | AC | 621 ms | 33952 KiB |
| test_42.txt | AC | 600 ms | 34048 KiB |
| test_43.txt | AC | 244 ms | 34108 KiB |
| test_44.txt | AC | 256 ms | 33972 KiB |