替 @红旗有五颗星 问的题目。
附送 @红旗有五颗星 的RE
代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
string st;
ll a[5];
ll t,ans;
bool ok()
{
for(int i=1;i<=3;i++)
if(a[i]==0) return false;
return true;
}
int main()
{
cin>>st;
int n=st.size()-1;
for(int i=0;i<=n;i++)
{
a[st[i]-'0']++;
t++;
if(ok()) break;
}
if(!ok()) {cout<<0;return 0;}
ans=t;
for(int l=0,r=t;r<=n;)
{
a[st[l]-'0']--;t--;
while(!ok()&&r<=n)
{
r++,t++,a[st[r]-'0']++;
}
ans=min(ans,t);
l++;
}
cout<<ans;
return 0;
}