Hi,↵
↵
Problem ==> http://mirror.codeforces.com/problemset/problem/1084/C↵
↵
My solution gets WA in test case 10 and I think it because overflow but I can't see any overflow problem.↵
↵
↵
~~~~~↵
#include<bits/stdc++.h>↵
using namespace std;↵
↵
const int INF = 1e9+7;↵
↵
int MOD(int x){↵
return ((x%INF)+INF)%INF;↵
}↵
↵
↵
~~~~~↵
int main()↵
{↵
string n;cin >> n;↵
string s;↵
for(int i=0;i<n.size();++i){↵
if(n[i]=='a' || n[i]=='b') s+=n[i];↵
}↵
//Get number of all of the contigiuos 'a's↵
vector<int> ans;↵
int cnt = 0;↵
for(int i=0;i<s.size();++i){↵
if(s[i]=='a') ++cnt;↵
else{↵
ans.push_back(cnt);cnt=0;↵
}↵
}ans.push_back(cnt);↵
//Calculate the answer↵
long long res=1;↵
for(auto &i : ans){↵
res = MOD(MOD(res) * MOD(i+1));↵
}cout << res-1;↵
}↵
~~~~~↵
↵
↵
↵
Problem ==> http://mirror.codeforces.com/problemset/problem/1084/C↵
↵
My solution gets WA in test case 10 and I think it because overflow but I can't see any overflow problem.↵
↵
↵
~~~~~↵
#include<bits/stdc++.h>↵
using namespace std;↵
↵
const int INF = 1e9+7;↵
↵
int MOD(int x){↵
return ((x%INF)+INF)%INF;↵
}↵
↵
~~~~~↵
{↵
string n;cin >> n;↵
string s;↵
for(int i=0;i<n.size();++i){↵
if(n[i]=='a' || n[i]=='b') s+=n[i];↵
}↵
//Get number of all of the contigiuos 'a's↵
vector<int> ans;↵
int cnt = 0;↵
for(int i=0;i<s.size();++i){↵
if(s[i]=='a') ++cnt;↵
else{↵
ans.push_back(cnt);cnt=0;↵
}↵
}ans.push_back(cnt);↵
//Calculate the answer↵
long long res=1;↵
for(auto &i : ans){↵
res = MOD(MOD(res) * MOD(i+1));↵
}cout << res-1;↵
}↵
~~~~~↵
↵