Submission #47493064


Source Code Expand

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

//template
using ll = long long;
using ull = unsigned long long;
const int inf = INT_MAX/2;
const ll infl = LONG_MAX/2;

#define OVERLOAD(e1, e2, e3, e4, NAME, ...) NAME
#define REP1(i, b) for (ll i = 0, i##_len = ll(b); i < i##_len; i++)
#define REP2(i, a, b) for (ll i = ll(a), i##_len = ll(b); i < i##_len; i++)
#define REP3(i, a, b, c) for (ll i = ll(a), i##_len = ll(b); i < i##_len; i += ll(c))
#define rep(...) OVERLOAD(__VA_ARGS__, REP3, REP2, REP1)(__VA_ARGS__)
#define REPS1(i, b) for (ll i = 0, i##_len = ll(b); i <= i##_len; i++)
#define REPS2(i, a, b) for (ll i = ll(a), i##_len = ll(b); i <= i##_len; i++)
#define REPS3(i, a, b, c) for (ll i = ll(a), i##_len = ll(b); i <= i##_len; i += ll(c))
#define reps(...) OVERLOAD(__VA_ARGS__, REPS3, REPS2, REPS1)(__VA_ARGS__)
#define RREP1(i, a) for (ll i = ll(a); i >= 0; i--)
#define RREP2(i, a, b) for (ll i = ll(a), i##_len = ll(b); i >= i##_len; i--)
#define RREP3(i, a, b, c) for (ll i = ll(a), i##_len = ll(b); i >= i##_len; i -= ll(c))
#define rrep(...) OVERLOAD(__VA_ARGS__, RREP3, RREP2, RREP1)(__VA_ARGS__)

#define vrep(i, vec) for (auto &i: vec)
#define all(x) (x).begin(), (x).end()
#define Yes(bool) if(bool) {println("Yes");} else {println("No");}

const double pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117;
template<class T> double rad(const T theta) { return theta*pi/180; }

ll mpow(ll x, ll n) { ll ret = 1; while (n > 0) { if (n & 1) ret *= x; x *= x; n >>= 1; } return ret; }

void printd() { cout << '\n'; } template<class T, class... Ts> void printd(const T& a, const Ts&... b) { cout << setprecision(20) << a; if (sizeof...(b) != 0) {cout << ' ';}; printd(b...); }
void println() { cout << '\n'; } template<class T, class... Ts> void println(const T& a, const Ts&... b) { cout << a; if (sizeof...(b) != 0) {cout << ' ';}; println(b...); }
void print() {} template<class T, class... Ts> void print(const T& a, const Ts&... b) { cout << a; if (sizeof...(b) != 0) {cout << ' ';}; print(b...); }
template<class T> void printv(const T vec) { int i = 0; int s = vec.size(); vrep(v, vec) { print(v); i++; if (i != s) print(' '); } println(); }
template<class T> void printvv(const T vec) { vrep(v, vec) { printv(v); } }
void in() {} template<class T, class... Ts> void in(T& a, Ts&... b) { cin >> a; in(b...); }



int main() {
    int N, Q;
    string S;
    in(N, Q, S);

    vector<int> d(N+1, 0);
    rep(i,1,S.size()) {
        if (S[i-1] == S[i]) {
            d[i+1] = d[i]+1;
        } else {
            d[i+1] = d[i];
        }
    }

    rep(i, Q) {
        int l, r;
        in(l, r);

        println(d[r]-d[l]);
    }

    return 0;
}

Submission Info

Submission Time
Task C - Consecutive
User kaede2912
Language C++ 23 (gcc 12.2)
Score 300
Code Size 2845 Byte
Status AC
Exec Time 415 ms
Memory 4888 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 24
Set Name Test Cases
Sample example0.txt, example1.txt
All 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, example0.txt, example1.txt
Case Name Status Exec Time Memory
000.txt AC 344 ms 3652 KiB
001.txt AC 404 ms 4684 KiB
002.txt AC 376 ms 4760 KiB
003.txt AC 385 ms 4848 KiB
004.txt AC 413 ms 4792 KiB
005.txt AC 385 ms 3780 KiB
006.txt AC 408 ms 4768 KiB
007.txt AC 388 ms 3648 KiB
008.txt AC 388 ms 3804 KiB
009.txt AC 406 ms 4456 KiB
010.txt AC 393 ms 4076 KiB
011.txt AC 405 ms 4412 KiB
012.txt AC 397 ms 4280 KiB
013.txt AC 415 ms 4760 KiB
014.txt AC 411 ms 4724 KiB
015.txt AC 410 ms 4796 KiB
016.txt AC 414 ms 4764 KiB
017.txt AC 414 ms 4752 KiB
018.txt AC 410 ms 4888 KiB
019.txt AC 411 ms 4792 KiB
020.txt AC 408 ms 4760 KiB
021.txt AC 412 ms 4680 KiB
example0.txt AC 1 ms 3588 KiB
example1.txt AC 1 ms 3512 KiB