Решение задачи Суши для двоих с Codeforces

Без пояснения   Просмотров: 53


Аркадий пригласил Анну на ужин в суши-ресторан. Ресторан немного необычный: на выбор клиенту предлагаются n суши, выложенных в ряд, а клиент должен заказать себе некоторый подотрезок из подряд идущих суши.

Суши бывают двух видов: либо с тунцом, либо с угрем. Обозначим тип i-го слева суши как ti, где ti=1 обозначает, что это суши с тунцом, а ti=2 означает, что оно с угрем.

Аркадий не любит суши с тунцом, Анна не любит суши с угрем. Аркадий хочет выбрать последовательный подотрезок суши так, чтобы в нем было поровну суши обоих типов, и каждая половина отрезка содержала только суши одного типа. Например, подотрезок [2,2,2,1,1,1] подходит, а подотрезок [1,2,1,2,1,2] — нет, потому что в обеих половинах есть суши обоих типов.

Найдите длину наибольшего подотрезка из подряд идущих суши, который может заказать Аркадий.

Код

#include<iostream>
using namespace std;
int a[100005];
int b[100005];
int ans;
int main(){
	int n;
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>a[i];
		if(a[i-1]!=a[i]){
			b[a[i]]=0;
		}
		b[a[i]]++;
		ans = max(ans,min(b[1],b[2])*2);
	}
	cout<<ans<<endl;
	
	return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться