记录编号 |
590917 |
评测结果 |
AAAAAAAAAA |
题目名称 |
W&B |
最终得分 |
100 |
用户昵称 |
袁书杰 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
1.891 s |
提交时间 |
2024-07-12 19:03:30 |
内存使用 |
3.77 MiB |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long T,n,x[100005];
char c[100005];
string s;
int main() {
freopen("silly.in","r",stdin);
freopen("silly.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>T;
while(T--) {
cin>>n;
long long w=0,b=0,tot=0;
for(long long i=1; i<=n; i++) {
cin>>x[i]>>c[i];
if(c[i]=='W') {
w+=x[i];
} else {
b+=x[i];
}
tot+=x[i];
}
if(b==tot) {
cout<<b<<'\n';
continue;
}
if(w==tot) {
cout<<w<<'\n';
continue;
}
long long t=__gcd(w,b),ans=0;
w/=t;
b/=t;
long long now_w=0,now_b=0;
for(long long i=1; i<=n; i++) {
if(c[i]=='W') {
if(now_b%b==0) {
if(now_b*w/b>now_w&&now_b/b*w<=now_w+x[i]) {
ans++;
}
now_w+=x[i];
} else {
now_w+=x[i];
}
} else {
if(now_w%w==0) {
if(now_w*b/w>now_b&&now_w/w*b<=now_b+x[i]) {
ans++;
}
now_b+=x[i];
} else {
now_b+=x[i];
}
}
}
cout<<ans<<'\n';
}
return 0;
}