Submission #696632

#TimeUsernameProblemLanguageResultExecution timeMemory
696632jhwest2Toilets (JOI16_toilets)C++17
100 / 100
22 ms5836 KiB
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const int N = 101010;

ll n, m, cnt[N]; string s[N];
int main() {
    cin.tie(0); ios_base::sync_with_stdio(0);
    cin >> n >> m;
    ll var = 0;
    for (int i = 0; i < m; i++) {
        cin >> s[i] >> cnt[i];
        reverse(s[i].begin(), s[i].end());

        int v = 0;
        for (int j = 0; j < s[i].size(); j++) {
            if (s[i][j] == 'M')
                ++v;
            else
                --v;
        }
        var += 1ll * v * cnt[i];
    }
    if (var > 0)
        return !(cout << -1);

    ll T = 0, V = 0;
    for (int i = m - 1; i >= 0; i--) {
        ll t = 0, v = 0;
        for (int j = 0; j < s[i].size(); j++) {
            if (s[i][j] == 'M')
                ++t;
            else
                --t;
            
            v = max(v, t);
        }
        if (t >= 0) 
            V = max(V, T + (cnt[i] - 1) * t + v);
        else
            V = max(V, T + v);
        
        T += cnt[i] * t;
    }
    cout << max(0ll, V - 1);
}

Compilation message (stderr)

toilets.cpp: In function 'int main()':
toilets.cpp:17:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |         for (int j = 0; j < s[i].size(); j++) {
      |                         ~~^~~~~~~~~~~~~
toilets.cpp:31:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |         for (int j = 0; j < s[i].size(); j++) {
      |                         ~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...