Task: | HIIT remains |
Sender: | Anonyymit Algoritmistit |
Submission time: | 2016-05-28 12:20:52 +0300 |
Language: | C++ |
Status: | READY |
Result: | ACCEPTED |
test | verdict | time | |
---|---|---|---|
#1 | ACCEPTED | 0.05 s | details |
#2 | ACCEPTED | 0.06 s | details |
#3 | ACCEPTED | 0.07 s | details |
#4 | ACCEPTED | 0.05 s | details |
Code
#include <bits/stdc++.h> using namespace std; typedef long long ll; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ll t; cin >> t; for(int x = 0; x < t; x++) { string s; cin >> s; ll n = s.length(); vector<ll> hiit; vector<ll> iit; vector<ll> it; vector<ll> t; hiit.resize(n); iit.resize(n); it.resize(n); t.resize(n); if (s[n-1] == 'T') t[n-1]++; for(int j = n-2; j >= 0; j--) { t[j]+=t[j+1]; if (s[j] == 'T') { t[j]++; } } for(int j = n-2; j >= 0; j--) { it[j] += it[j+1]; if (s[j] == 'I') { it[j] += t[j+1]; } } for(int j = n-2; j >= 0; j--) { iit[j] += iit[j+1]; if (s[j] == 'I') { iit[j] += it[j+1]; } } for(int j = n-2; j >= 0; j--) { hiit[j] += hiit[j+1]; if (s[j] == 'H') { hiit[j] += iit[j+1]; } } /*for(int i = 0; i < n; i++) { cout << hiit[i] << " "; }*/ //cout << endl; cout << hiit[0] << endl; } }
Test details
Test 1
Verdict: ACCEPTED
input |
---|
100 IIITIIIHITHTHIIITIII HIHIIIIIIHIIITHIIIII ITTIIIITIIIIIIITIIIT IITHITITIHHIITTTIIII ... |
correct output |
---|
12 84 0 37 96 ... |
user output |
---|
12 84 0 37 96 ... |
Test 2
Verdict: ACCEPTED
input |
---|
100 TIIHHITTITITIHTHIIIITHIHHIIHTI... |
correct output |
---|
606723862 621369559 655243897 550750615 717769300 ... |
user output |
---|
606723862 621369559 655243897 550750615 717769300 ... |
Test 3
Verdict: ACCEPTED
input |
---|
10 TTHTHHTIIIIIITHIIHIITITTITTIIH... |
correct output |
---|
64668032062669502 66159978956790306 65755072918424640 64408596558953628 65238005187079543 ... |
user output |
---|
64668032062669502 66159978956790306 65755072918424640 64408596558953628 65238005187079543 ... |
Test 4
Verdict: ACCEPTED
input |
---|
3 HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH... |
correct output |
---|
781234375000000000 4999750003 0 |
user output |
---|
781234375000000000 4999750003 0 |