#include <bits/stdc++.h>
#include <vector>
using namespace std;
struct p{
int a;
int b;
int c;
};
vector<p> word;
string w;
int main(){
p z;
z.a =0;
z.b = 0;
z.c = 0;
word.push_back(z);
getline(std::cin, w);
int a = 0;
int b = 0;
int c = 0;
for(int i =0;i<w.size();i++){
if(w[i]=='a'){
a += 1;
}
else if(w[i]=='b'){
b += 1;
}
if(w[i]=='c'){
c += 1;
}
p tmp;
tmp.a = a;
tmp.b = b;
tmp.c = c;
word.push_back(tmp);
}
for(auto i: word){
// cout << i.a << " " << i.b <<" "<< i.c << endl;
}
// cout << endl;
int sum =0;
for(int i=1;i<=w.size();i++){
for(int j =0;j<=w.size()-i;j++){
// cout << word[j+i].a << " " << word[j].a << endl;
int ta = word[j+i].a-word[j].a;
int tb = word[j+i].b-word[j].b;
int tc = word[j+i].c-word[j].c;
int control = max(ta,max(tb, tc));
// cout << ta << " " << tb <<" " << tc << " ";
if(ta == control || ta == 0){
if(tb == control || tb == 0){
if(tc == control || tc == 0){
// cout << "true" << endl;
sum +=1;
}
// else cout << "false" << endl;
}
// else cout << "false" << endl;
}
// else cout << "false" << endl;
}
}
cout << sum << endl;
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #include <bits/stdc++.h> #include <vector> using namespace std; struct p{ int a; int b; int c; }; vector<p> word; string w; int main(){ p z; z.a =0; z.b = 0; z.c = 0; word.push_back(z); getline(std::cin, w); int a = 0; int b = 0; int c = 0; for(int i =0;i<w.size();i++){ if(w[i]=='a'){ a += 1; } else if(w[i]=='b'){ b += 1; } if(w[i]=='c'){ c += 1; } p tmp; tmp.a = a; tmp.b = b; tmp.c = c; word.push_back(tmp); } for(auto i: word){ // cout << i.a << " " << i.b <<" "<< i.c << endl; } // cout << endl; int sum =0; for(int i=1;i<=w.size();i++){ for(int j =0;j<=w.size()-i;j++){ // cout << word[j+i].a << " " << word[j].a << endl; int ta = word[j+i].a-word[j].a; int tb = word[j+i].b-word[j].b; int tc = word[j+i].c-word[j].c; int control = max(ta,max(tb, tc)); // cout << ta << " " << tb <<" " << tc << " "; if(ta == control || ta == 0){ if(tb == control || tb == 0){ if(tc == control || tc == 0){ // cout << "true" << endl; sum +=1; } // else cout << "false" << endl; } // else cout << "false" << endl; } // else cout << "false" << endl; } } cout << sum << endl; } |
English