1 条题解
-
1
#include<bits/stdc++.h> using namespace std; #define int long long int ans,r[100010],g[100010],b[100010],n; char s[100010]; signed main() { cin>>n; for(int i=1; i<=n; i++) { cin>>s[i]; b[i]=b[i-1]; g[i]=g[i-1]; r[i]=r[i-1]; if(s[i]=='R') { r[i]++; } if(s[i]=='G') { g[i]++; } if(s[i]=='B') { b[i]++; } } for(int i=2; i<=n-1; i++) { if(s[i]=='R') { ans+=g[i]*(b[n]-b[i]); ans+=b[i]*(g[n]-g[i]); } if(s[i]=='G') { ans+=r[i]*(b[n]-b[i]); ans+=b[i]*(r[n]-r[i]); } if(s[i]=='B') { ans+=g[i]*(r[n]-r[i]); ans+=r[i]*(g[n]-g[i]); } for(int j=1; j<=n; j++) { int sb1=i-j,sb2=i+j,sb3=n+1; if(sb1<=0||sb2>=sb3) { break; } if(s[sb1]!=s[sb2]&&s[sb1]!=s[i]&&s[i]!=s[sb2])ans--; } } cout<<ans; return 0; }
信息
- ID
- 2596
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 146
- 已通过
- 46
- 上传者