不多说了。。虽然使水题,但做了比较久
#include<stdio.h>
#include<string.h>
char a[10000005];
int main()
{
int n;
int flag[200];
while(scanf("%d",&n)!=EOF)
{
getchar();
memset(flag,0,sizeof(flag));
int i,j,begin=0,last,max=-9999,res_begin=0,res_last=0;
scanf("%s",a);
for(i=0;i<n;i++)
{
if(flag[a[i]])
{
last=i-1;
if(last-begin>res_last-res_begin) { res_begin=begin; res_last=last; }
for(j=begin;j<=last;j++)
{
if(a[i]==a[j]) break;
flag[a[j]]=0;
}
begin=j+1;
}
else
flag[a[i]]=1;
}
if(n-1-begin>res_last-res_begin) { res_begin=begin; res_last=n-1; }
printf("%d %d %d\n",res_last-res_begin+1,res_begin,res_last);
}
return 0;
}