Submission #1965676


Source Code Expand

#include <iostream>
#include <vector>
#include <set>
using namespace std;

int n;


typedef pair<int,int> P;

int a[10000];

int rec(int l,int r)
{
	if(l <= -1 || n <= r) return 0;

	int cl = a[l];
	int cr = a[r];

	if(cl != cr) return 0;
	int cou = 2;
	--l;
	while(a[l] == cl && 0 <= l)
	{
		--l;
		cou++;
	}
	r++;
	while(a[r] == cr && r < n)
	{
		++r;
		cou++;
	}
	if(cou < 4) return 0;
	return cou + rec(l,r);
}


int main()
{
	cin >> n;
	for(int i = 0;i < n;i++) cin >> a[i];
	
	int result = 0;
	for(int i = 1;i < n - 1;i++)
	{
		int before = a[i];
		a[i] = a[i - 1];

		result = max(result , rec(i - 1,i));

		a[i] = a[i + 1];

		result = max(result , rec(i - 1,i));

		a[i] = before;
	}

	cout << n - result << endl;
	return 0;
}

Submission Info

Submission Time
Task C - 連鎖
User niuez
Language C++14 (GCC 5.4.1)
Score 100
Code Size 797 Byte
Status AC
Exec Time 3 ms
Memory 256 KB

Judge Result

Set Name set01 set02 set03 set04 set05
Score / Max Score 20 / 20 20 / 20 20 / 20 20 / 20 20 / 20
Status
AC × 1
AC × 1
AC
AC × 1
AC × 1
Set Name Test Cases
set01 data1
set02 data2
set03 data3
set04 data4
set05 data5
Case Name Status Exec Time Memory
data1 AC 1 ms 256 KB
data2 AC 1 ms 256 KB
data4 AC 2 ms 256 KB
data5 AC 3 ms 256 KB