問題文通りに実装します。 小池くんが不正解したときだけ現在の小池くんの持ち得点 pp00 未満となっていれば p=0p=0 にする形です。

ただ、この問題の制約を見ると小池くんの持ち得点が int型整数 の最大値 2.14×1092.14×10^9 を超えてしまう可能性があります。 よって long long 型を使うことが推奨されます。

#include <stdio.h>
#define ll long long

int main(void){
    ll N,P,A,W;  scanf("%lld%lld%lld%lld", &N, &P, &A, &W);
    char S[N+1];  scanf("%s", S);
    
    ll point=P;
    
    for(int i=0; i<N; i++){
        if(S[i]=='o') point += A;
        else point -= W;
        
        if(point<0) point=0;
    }
    
    printf("%lld", point);
}