10-11 класс


Есеп D. Кезектес жаттығулар

Ограничение по времени:
1 second
Ограничение по памяти:
256 megabytes

Алан шахмат пен бағдарламалау есеперін шығаруды жақсы көреді. Екі жерді де жақсы алып жүргіп, аты аңызға айналған гроссмейстер атағын алғысы келеді. Айдос тәжірибелі бапкер болғандықтан, Аланға көмек бермекші. Айдостың алдын ала белгілі бір келесі $n$ күнге кестесі бар. Кестенің әр күнінде Айдос әрбір жақтың бір ғана түрін, не шахмат, не бағдармалау есептеріне дайындайды. Алан жаттығу үшін өзіне бірнеше қатарынан келетін күндердерді алғысы келеді. Және де, Алан қатарынан бірнеше күн бірдей ермек түріне жаттықан кезде қатты шаршайды, яғни Аланға күн сайын шахмат пен бағдарламалауды кезектестіруі керек. Аланға шаршамайтындай, берілген кестеден ең ұзын қатарлас жаттығу күндерін таңдап алуға көмек қажет.
Формат входного файла
Ең бірінші жолда бір бүтін сан $n (1 <= n <= 2 * 10^5)$ — Айдостың кестесінің күндер саны беріледі. Екінші жолда, бос жерсіз $0$ мен $1$-ден тұратын $n$ цифр берілген. $i$-ші цифр $0$ болғанда Айдос бағдарламалауды, басқаша болғанда шахматты дайындайды.
Формат выходного файла
Бір бүтін сан шығарыңыз — Аланның жаттығуларына таңдап алынған ең ұзын күндер саны.
Система оценки
Берілген есепте 50 тест бар. Әр тест 2 ұпаймен бағаланады. Есеп 5 бөлімнен тұрады: 1-бөлім: $2$ берілген тесттік мысалдар. 2-бөлім: $n <= 3$. $13$ тест 3-бөлім: $n <= 100$. $5$ тест 4-бөлім: $n <= 5000$. $12$ тест 5-бөлім: $n <= 200000$. $18$ тест
Примеры:
\exmpfile{example.01}{example.01.a}% \exmpfile{example.02}{example.02.a}%
Замечание
Бірінші мысалда, Алан барлық күндерді жаттығуға жұмсай алады. Екінші мысалда, Алан $2$-ші күннен бастап $4$-ші күнге дейін жаттыға алады: $2$-ші күні бағдарламалау, $3$-ші күні шахмат және $4$-ші күні бағдарламалау. Ескерту, бірінші мен екінші күні Алан жаттыға алмайды, екі күн қатарынан бағдарламалаумен айналысса, қатты шаршап кетеді. ( Temirulan Mussayev )
посмотреть в олимпиаде

Комментарий/решение:

  -4
2019-01-22 09:02:20.0 #

Почему Ошибка Исполнения?

#include <bits/stdc++.h>

using namespace std;

int tl[200005];

int main(){

int n,m;

cin>>n>>m;

string s;

cin>>s;

for(int i=0;i<m;i++){

int l,r;

cin>>l>>r;

if(l>r){

swap(l,r);

}

tl[l]+=1;

tl[r+1]+=-1;

}

int rev=0;

for(int i=1;i<=n;i++){

rev+=tl[i];

if(rev%2==1){

if(s[i-1]=='0')s[i-1]='1';

else s[i-1]='0';

}

}

int mx=1,cnt=1;

for(int i=1;i<s.size();i++){

if(s[i]!=s[i-1]){

cnt++;

}

else{

mx=max(cnt,mx);

cnt=1;

}

}

mx=max(cnt,mx);

cnt=1;

cout<<mx;

}

  -4
2019-03-31 22:24:05.0 #

кодты корсету/жасыру

пред. Правка 2   0
2019-12-15 11:17:02.0 #

пред. Правка 2   1
2019-12-15 11:16:37.0 #

  1
2022-10-05 21:58:00.0 #

кодты корсету/жасыру