Submission #391197

# Submission time Handle Problem Language Result Execution time Memory
391197 2021-04-18T07:50:22 Z palilo Take-out (POI13_usu) C++17
100 / 100
178 ms 42892 KB
#include <bits/stdc++.h>
using namespace std;

struct elem {
    int id, bsum, csum;
    elem(int id, int bsum, int csum) : id(id), bsum(bsum), csum(csum) {}
};

int main() {
    cin.tie(nullptr)->sync_with_stdio(false);
#ifdef home
    freopen("in", "r", stdin);
    freopen("out", "w", stdout);
#endif
    int n, k;
    string s;
    cin >> n >> k >> s;

    vector<elem> stk;
    stk.emplace_back(-1, 0, 0);

    vector<vector<int>> ans;
    ans.reserve(n / (k + 1));

    for (int i = 0; i < n; ++i) {
        stk.emplace_back(i, stk.back().bsum + (s[i] == 'b'), stk.back().csum + (s[i] == 'c'));
        if (stk.size() > k + 1 &&
            stk.back().bsum - stk.end()[-k - 2].bsum == k &&
            stk.back().csum - stk.end()[-k - 2].csum == 1) {
            vector<int> vt(k + 1);
            for (int i = 0; i < k + 1; ++i)
                vt[i] = stk.end()[i - k - 1].id + 1;

            stk.erase(stk.end() - k - 1, stk.end());
            ans.emplace_back(vt);
        }
    }

    reverse(ans.begin(), ans.end());
    for (const auto& vt : ans) {
        for (const auto& x : vt) cout << x << ' ';
        cout << '\n';
    }
}

Compilation message

usu.cpp: In function 'int main()':
usu.cpp:27:24: warning: comparison of integer expressions of different signedness: 'std::vector<elem>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   27 |         if (stk.size() > k + 1 &&
      |             ~~~~~~~~~~~^~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 1 ms 204 KB Output is correct
4 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 204 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 460 KB Output is correct
2 Correct 2 ms 332 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 17 ms 2876 KB Output is correct
2 Correct 11 ms 2336 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 26 ms 4596 KB Output is correct
2 Correct 35 ms 5284 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 57 ms 9764 KB Output is correct
2 Correct 37 ms 5864 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 97 ms 12664 KB Output is correct
2 Correct 88 ms 12696 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 178 ms 42892 KB Output is correct
2 Correct 122 ms 28728 KB Output is correct
3 Correct 109 ms 18992 KB Output is correct
4 Correct 119 ms 16344 KB Output is correct