Submission #864273

#TimeUsernameProblemLanguageResultExecution timeMemory
864273vjudge1Crossing (JOI21_crossing)C++17
26 / 100
7011 ms3412 KiB
#include <bits/stdc++.h>
using namespace std;

string cross(string a, string b)
{
    string t=a;
    for (int i=0; i<a.size(); i++)
    {
        if (a[i]==b[i])
            t[i]=a[i];
        if (b[i]<a[i])
            swap(a[i], b[i]);
        if (a[i]=='I' && b[i]=='J')
            t[i]='O';
        if (a[i]=='I' && b[i]=='O')
            t[i]='J';
        if (a[i]=='J' && b[i]=='O')
            t[i]='I';
    }

    return t;
}

int main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    int n, q;
    string a, b, c, p;
    cin >> n;
    cin >> a >> b >> c;
    set<string> s, snew;
    vector<string> v;
    s.insert(a);
    s.insert(b);
    s.insert(c);
    v.push_back(a);
    v.push_back(b);
    v.push_back(c);
    bool newstring=true;
    int repeat=0;
    while (newstring)
    {
        newstring=false;
        for (int i=0; i<v.size(); i++)
            for (int j=i+1; j<v.size(); j++)
            {
                string t=cross(v[i], v[j]);
                if (s.count(t)==0)
                {
                    snew.insert(t);
                    newstring=true;
                }
            }
        for (auto t : snew)
        {
            s.insert(t);
            v.push_back(t);
        }
        repeat=repeat+1;
    }
    cin >> q;
    cin >> p;
    if (s.count(p))
        cout << "Yes" << '\n';
    else
        cout << "No" << '\n';
    while (q--)
    {
        int l, r;
        char x;
        cin >> l >> r >> x;
        l=l-1;
        r=r-1;
        for (int i=l; i<=r; i++)
            p[i]=x;
        if (s.count(p))
            cout << "Yes" << '\n';
        else
            cout << "No" << '\n';

    }
    /*cout << '\n';
    cout << repeat << '\n';
    cout << "SLAY\n\n";
    for (auto t : v)
        cout << t << '\n';*/

    return 0;
}

Compilation message (stderr)

Main.cpp: In function 'std::string cross(std::string, std::string)':
Main.cpp:7:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
    7 |     for (int i=0; i<a.size(); i++)
      |                   ~^~~~~~~~~
Main.cpp: In function 'int main()':
Main.cpp:46:24: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |         for (int i=0; i<v.size(); i++)
      |                       ~^~~~~~~~~
Main.cpp:47:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::__cxx11::basic_string<char> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |             for (int j=i+1; j<v.size(); j++)
      |                             ~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...