Submission #744291

# Submission time Handle Problem Language Result Execution time Memory
744291 2023-05-18T10:35:07 Z GrindMachine Crossing (JOI21_crossing) C++17
26 / 100
7000 ms 4716 KB
// Om Namah Shivaya

#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

template<typename T> using Tree = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
typedef long long int ll;
typedef long double ld;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;

#define fastio ios_base::sync_with_stdio(false); cin.tie(NULL)
#define pb push_back
#define endl '\n'
#define sz(a) a.size()
#define setbits(x) __builtin_popcountll(x)
#define ff first
#define ss second
#define conts continue
#define ceil2(x, y) ((x + y - 1) / (y))
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define yes cout << "Yes" << endl
#define no cout << "No" << endl

#define rep(i, n) for(int i = 0; i < n; ++i)
#define rep1(i, n) for(int i = 1; i <= n; ++i)
#define rev(i, s, e) for(int i = s; i >= e; --i)
#define trav(i, a) for(auto &i : a)

template<typename T>
void amin(T &a, T b) {
    a = min(a, b);
}

template<typename T>
void amax(T &a, T b) {
    a = max(a, b);
}

#ifdef LOCAL
#include "debug.h"
#else
#define debug(x) 42
#endif

/*



*/

const int MOD = 1e9 + 7;
const int N = 1e5 + 5;
const int inf1 = int(1e9) + 5;
const ll inf2 = ll(1e18) + 5;

string f(string s1, string s2) {
    string s3 = "";
    rep(i, sz(s1)) {
        if (s1[i] == s2[i]) {
            s3.pb(s1[i]);
        }
        else {
            string joi = "JOI";
            for (auto ch : joi) {
                if (s1[i] != ch and s2[i] != ch) {
                    s3.pb(ch);
                }
            }
        }
    }

    return s3;
}

set<string> st;
string s1, s2, s3;

void go(string s) {
    if (st.count(s)) return;
    st.insert(s);

    go(f(s, s1));
    go(f(s, s2));
    go(f(s, s3));
}

void solve(int test_case)
{
    ll n; cin >> n;
    cin >> s1 >> s2 >> s3;

    for (auto s : {s1, s2, s3}) {
        go(s);
    }

    assert(sz(st) <= 9);

    auto ok = [&](string t) {
        trav(s, st) {
            if (s == t) return true;
        }

        return false;
    };

    ll q; cin >> q;
    string t; cin >> t;
    if (ok(t)) yes;
    else no;

    while (q--) {
        ll l, r; cin >> l >> r;
        char ch; cin >> ch;
        for (int i = l - 1; i < r; ++i) {
            t[i] = ch;
        }

        if (ok(t)) yes;
        else no;
    }
}

int main()
{
    fastio;

    int t = 1;
    // cin >> t;

    rep1(i, t) {
        solve(i);
    }

    return 0;
}

Compilation message

Main.cpp: In function 'std::string f(std::string, std::string)':
Main.cpp:30:36: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 | #define rep(i, n) for(int i = 0; i < n; ++i)
      |                                    ^
Main.cpp:64:5: note: in expansion of macro 'rep'
   64 |     rep(i, sz(s1)) {
      |     ^~~
# Verdict Execution time Memory Grader output
1 Correct 48 ms 2192 KB Output is correct
2 Correct 65 ms 2372 KB Output is correct
3 Correct 82 ms 2308 KB Output is correct
4 Correct 51 ms 2252 KB Output is correct
5 Correct 53 ms 2344 KB Output is correct
6 Correct 51 ms 2276 KB Output is correct
7 Correct 49 ms 2368 KB Output is correct
8 Correct 53 ms 2424 KB Output is correct
9 Correct 57 ms 2444 KB Output is correct
10 Correct 55 ms 2392 KB Output is correct
11 Correct 51 ms 2336 KB Output is correct
12 Correct 59 ms 2312 KB Output is correct
13 Correct 54 ms 2340 KB Output is correct
14 Correct 53 ms 2320 KB Output is correct
15 Correct 53 ms 2404 KB Output is correct
16 Correct 58 ms 2428 KB Output is correct
17 Correct 54 ms 2328 KB Output is correct
18 Correct 85 ms 2248 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 48 ms 2192 KB Output is correct
2 Correct 65 ms 2372 KB Output is correct
3 Correct 82 ms 2308 KB Output is correct
4 Correct 51 ms 2252 KB Output is correct
5 Correct 53 ms 2344 KB Output is correct
6 Correct 51 ms 2276 KB Output is correct
7 Correct 49 ms 2368 KB Output is correct
8 Correct 53 ms 2424 KB Output is correct
9 Correct 57 ms 2444 KB Output is correct
10 Correct 55 ms 2392 KB Output is correct
11 Correct 51 ms 2336 KB Output is correct
12 Correct 59 ms 2312 KB Output is correct
13 Correct 54 ms 2340 KB Output is correct
14 Correct 53 ms 2320 KB Output is correct
15 Correct 53 ms 2404 KB Output is correct
16 Correct 58 ms 2428 KB Output is correct
17 Correct 54 ms 2328 KB Output is correct
18 Correct 85 ms 2248 KB Output is correct
19 Execution timed out 7013 ms 4716 KB Time limit exceeded
20 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 48 ms 2192 KB Output is correct
2 Correct 65 ms 2372 KB Output is correct
3 Correct 82 ms 2308 KB Output is correct
4 Correct 51 ms 2252 KB Output is correct
5 Correct 53 ms 2344 KB Output is correct
6 Correct 51 ms 2276 KB Output is correct
7 Correct 49 ms 2368 KB Output is correct
8 Correct 53 ms 2424 KB Output is correct
9 Correct 57 ms 2444 KB Output is correct
10 Correct 55 ms 2392 KB Output is correct
11 Correct 51 ms 2336 KB Output is correct
12 Correct 59 ms 2312 KB Output is correct
13 Correct 54 ms 2340 KB Output is correct
14 Correct 53 ms 2320 KB Output is correct
15 Correct 53 ms 2404 KB Output is correct
16 Correct 58 ms 2428 KB Output is correct
17 Correct 54 ms 2328 KB Output is correct
18 Correct 85 ms 2248 KB Output is correct
19 Correct 64 ms 2292 KB Output is correct
20 Correct 96 ms 2392 KB Output is correct
21 Correct 54 ms 2344 KB Output is correct
22 Correct 48 ms 2224 KB Output is correct
23 Correct 54 ms 2380 KB Output is correct
24 Correct 58 ms 2300 KB Output is correct
25 Correct 54 ms 2368 KB Output is correct
26 Correct 57 ms 2276 KB Output is correct
27 Correct 59 ms 2408 KB Output is correct
28 Correct 53 ms 2144 KB Output is correct
29 Correct 58 ms 2380 KB Output is correct
30 Correct 55 ms 2228 KB Output is correct
31 Correct 68 ms 2444 KB Output is correct
32 Correct 70 ms 2344 KB Output is correct
33 Correct 63 ms 2380 KB Output is correct
34 Correct 61 ms 2192 KB Output is correct
35 Correct 65 ms 2412 KB Output is correct
36 Correct 64 ms 2404 KB Output is correct
37 Correct 69 ms 2416 KB Output is correct
38 Correct 63 ms 2408 KB Output is correct
39 Correct 64 ms 2412 KB Output is correct
40 Correct 73 ms 2328 KB Output is correct
41 Correct 74 ms 2384 KB Output is correct
42 Correct 72 ms 2432 KB Output is correct
43 Correct 76 ms 2352 KB Output is correct
44 Correct 73 ms 2340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 48 ms 2192 KB Output is correct
2 Correct 65 ms 2372 KB Output is correct
3 Correct 82 ms 2308 KB Output is correct
4 Correct 51 ms 2252 KB Output is correct
5 Correct 53 ms 2344 KB Output is correct
6 Correct 51 ms 2276 KB Output is correct
7 Correct 49 ms 2368 KB Output is correct
8 Correct 53 ms 2424 KB Output is correct
9 Correct 57 ms 2444 KB Output is correct
10 Correct 55 ms 2392 KB Output is correct
11 Correct 51 ms 2336 KB Output is correct
12 Correct 59 ms 2312 KB Output is correct
13 Correct 54 ms 2340 KB Output is correct
14 Correct 53 ms 2320 KB Output is correct
15 Correct 53 ms 2404 KB Output is correct
16 Correct 58 ms 2428 KB Output is correct
17 Correct 54 ms 2328 KB Output is correct
18 Correct 85 ms 2248 KB Output is correct
19 Execution timed out 7013 ms 4716 KB Time limit exceeded
20 Halted 0 ms 0 KB -