1 条题解

  • 0
    @ 2025-4-12 21:43:14

    C :

    #include<stdio.h>
    int main()
    {
        int i,k,j,o,n,sum,x,y,p,q;
        char a[10000],g,f;
        while(scanf("%d",&n)!=EOF)
        {
            sum=0;
            scanf("%s",a);
    		for(i=0;i<n;i++)
    		{
    			a[i+n]=a[i];
    		}
            for(i=n;i<=2*n;i++)
            {
    			k=x=y=p=q=0;
                for(j=i;j<=2*n;j++)
                {
    			    if(a[j]!='w')
    				{
                    	f=a[j];
    					break;
    				}
    			}
    			for(o=i-1;o>=0;o--)
                {
    			    if(a[o]!='w')
    				{
                    	g=a[o];
    					break;
    				}
    			}
    			if(g!=f)
    			{
    				for(j=i;j<2*n;j++)
    				{
    			        if(a[j]=='w'||a[j]==f)
    					    k++;
    			    	else
    				    	break;
    				}
                    for(o=i-1;o>=0;o--)
    				{
    			        if(a[o]=='w'||a[o]==g)
    					    k++;
    				    else
    					    break;
    				}
    			}
                else
    			{
    				for(j=i;j<2*n;j++)
    				{
    			        if((a[j]=='w'||a[j]==f)&&p==0)
    					    k++;
    			    	else
    					{
    				    	x++;
    						p=1;
    						if(a[j+1]==f)
    							break;
    					}
    				}
    				for(o=i-1;o>=0;o--)
    				{
    			        if((a[o]=='w'||a[o]==g)&&q==0)
    					    k++;
    				    else
    					{
    						y++;
    						q=1;
    						if(a[o-1]==g)
    							break;
    					}
    				}
    				if(x>y)
    					k=k+x;
    				else
    					k=k+y;
    			}
                if(k>sum)
                sum=k;
            }
    		if(sum>n)
    			sum=n;
            printf("%d\n",sum);
        }
        return 0;
    }
    

    C++ :

    /*
    ID:wangzhe30
    LANG:C
    PROG:beads
    */
    #include <stdio.h>
    int main()
    {
    	int n;
    	//freopen("beads.in","r",stdin);
    	//freopen("beads.out","w",stdout);
    	while(scanf("%d",&n)!=EOF)
    	{
    	    int k[350]={0},i,t,max=0,f=0,p,h;
            char beads[700]={0};
    	    scanf("%s",beads);
            for(i=0;i<n;i++)
                beads[i+n]=beads[i];
            for(i=0;i<n;i++)
            {
                p=i;
                f=0;
                for(t=0;t<n;t++)
                {
                    if(beads[p]=='w' && f==0)
                    {
                        k[i]++;
                        p++;
                        continue;
                    }
                    if((beads[p]==beads[p+t])||(beads[p+t]=='w'))
                    {
                        f=1;
                        k[i]++;
                    }
                    else
                        break;
                }
                f=0;
                p=n+i-1;
                for(h=0;h<n-t;h++)
                {
                    if(beads[p]=='w' && f==0)
                    {
                        k[i]++;
                        p--;
                        continue;
                    }
                    if((beads[p]==beads[n+i-1-h])||(beads[n+i-1-h]=='w'))
                    {
                        f=1;
                        k[i]++;
                    }
                    else
                        break;
                }
            }
            for(i=0;i<n;i++)
                if (max<k[i])
                    max=k[i];
            printf("%d\n",max);
    	}
    	return 0;
    }
    
    
    • 1

    信息

    ID
    1365
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者