2 条题解
-
1
#include<bits/stdc++.h> #define ll long long #pragma GCC optimize(2) #define un unsigned #define int long long #define db double #define st string #define ct const #define xh(a,b,c) for(int a=b;a<=c;a++) #define wx while(1) #define dn(a,b,c) for(int a=b;a>=c;a--) using namespace std; int l,maxn=-1; string s; signed main(){ cin>>l>>s; xh(i,0,l-1){ int j=i+1; string str; xh(k,j,l-1)str+=s[k]; xh(k,0,i)str+=s[k]; int t1=-1,t2=l,ans=0; char a1='w',a2='w'; while((str[t1+1]a1||str[t1+1]'w'||a1=='w')&&t1+1<l){ t1++; ans++; if(a1=='w'&&str[t1]!='w')a1=str[t1]; } while((str[t2-1]a2||str[t2-1]'w'||a2=='w')&&t2-1>t1){ t2--; ans++; if(a2=='w'&&str[t2]!='w')a2=str[t2]; } maxn=max(maxn,ans); } cout<<maxn; return 0; } ``
-
0
#include<bits/stdc++.h> using namespace std; string a; int n,ans=-1; int count(int x) { int l=0,r=0; char lc=a[x],rc=a[x+1]; int i=x; while(i>=0&&(a[i]lc||a[i]'w')) l++,i--; i=x+1; while(i<n*3&&(a[i]rc||a[i]'w')) r++,i++; return l+r;
} int main() { cin>>n; cin>>a; a=a+a+a; for(int i=n;i<n*2;i++) { if(a[i]a[i+1]) continue; if(a[i]'w') { a[i]='r'; ans=max(ans,count(i)); a[i]='b'; ans=max(ans,count(i)); a[i]='w'; } else ans=max(ans,count(i)); } ans=min(ans,n); if(ans<0)ans=n; cout<<ans<<endl; return 0; }
- 1
信息
- ID
- 543
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 5
- 标签
- (无)
- 递交数
- 190
- 已通过
- 68
- 上传者