fork download
  1. #include<iostream>
  2. #include<algorithm>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. ios_base::sync_with_stdio(0);
  8. cin.tie(0);
  9. /*#ifndef ONLINE_JUDGE
  10.   freopen("input.txt", "r", stdin);
  11.   freopen("out.txt", "w", stdout);
  12.   #endif*/
  13. int t, n;
  14. int i;
  15. cin >> t;
  16. while(t--) {
  17. cin >> n;
  18. long long int ar[n];
  19. char ch[n];
  20. long long int dp[n] = {0};
  21. for(i = 0; i < n; i++) {
  22. cin >> ch[i];
  23. }
  24. for(i = 0; i < n; i++) {
  25. cin >> ar[i];
  26. }
  27. dp[0] = ar[0];
  28. if(n > 1) {
  29. if(ch[1] == 'F') {
  30. dp[1] = dp[0]+ar[1];
  31. }
  32. else {
  33. dp[1] = max(dp[0], ar[1]);
  34. }
  35. }
  36. for(i = 2; i < n; i++) {
  37. if(ch[i] == 'F') {
  38. if(ch[i-1] == 'F') {
  39. dp[i] = dp[i-1]+ar[i];
  40. }
  41. else {
  42.  
  43. if(i==2)
  44. {
  45. dp[i] = dp[i-1] + ar[i];
  46. }
  47. else
  48. {
  49. dp[i] = dp[i-1] + ar[i];
  50. }
  51.  
  52.  
  53.  
  54. }
  55. }
  56. else {
  57. dp[i] = max(dp[i-2]+ar[i], dp[i-1]);
  58. }
  59. }
  60. cout << dp[n-1] << endl;
  61. }
  62. return 0;
  63. }
  64.  
Success #stdin #stdout 0s 15240KB
stdin
3
3
J J F
8 9 7
5
J J J J J
5 2 4 6 3
4
F J F J
1 2 4 3
stdout
16
12
6