1 条题解

  • 2
    @ 2024-12-21 20:21:39
    警示后人\Large\color{#FF0000}\textbf{警示后人}

    这道题如果不用链表写请务必注意边界,以下是错误示范:

    #include <bits/stdc++.h>
    using namespace std;
    int n,maxn=0;
    char a[351];
    int main()
    {
    	cin>>n>>a;
    	for (int i=0;i<n;i++){
    		int j=i-1:n-1,lsum1=0,rsum1=0,lsum2=0,rsum2=0;//这里有亿点问题
    		while (a[j]!='r' && j!=i){
    			lsum1++;
    			j--;
    			if (j<0){
    				j=n-1;
    			}
    		}
    		j=i;
    		while (a[j]!='r' && j!=((i!=0)?i-1:n-1)){
    			rsum1++;
    			j++;
    			if (j>n-1){
    				j=0;
    			}
    		}
    		j=i!=0?i-1:n-1;
    		while (a[j]!='b' && j!=i){
    			lsum2++;
    			j--;
    			if (j<0){
    				j=n-1;
    			}
    		}
    		j=i;
    		while (a[j]!='b' && j!=((i!=0)?i-1:n-1)){
    			rsum2++;
    			j++;
    			if (j>n-1){
    				j=0;
    			}
    		}
    		maxn=max(max(lsum1,lsum2)+max(rsum1,rsum2),maxn);
    	}
    	cout<<min(maxn,n);
    }
    

    信息

    ID
    6
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    45
    已通过
    6
    上传者