Submission #1219616

#TimeUsernameProblemLanguageResultExecution timeMemory
1219616trimkus로봇 대회 (IOI23_robot)C++20
6 / 100
68 ms5704 KiB
#include "robot.h"
#include <bits/stdc++.h>
using namespace std;

void program_pulibot()
{
    const char goleft = 'E', goright = 'W', godown = 'S', goup = 'N', term = 'T';
    //                           .   <  v  >   ^
    vector<int> states = {-2, -1, 0, 1, 2}, states_blocked = {-2, -1, 2};
    set<vector<int>> st;
    for (auto i : states) {
        for (auto j : states) {
            for (auto k : states) {
                vector<int> v = {0, i, -2, -2, j};
                if (st.count(v)) continue;
                st.insert(v);
                set_instruction(v, 1, term);
            }
        }
    }
    for (auto i : states_blocked) {
        for (auto j : states_blocked) {
            for (auto k : states_blocked) {
                vector<int> v = {0, i, 1, j, k};
                if (st.count(v)) continue;
                st.insert(v);
                set_instruction({0, i, 1, j, k}, 2, godown);
            }
        }
    }
    for (auto i : states) {
        for (auto j : states) {
            for (auto k : states) {
                vector<int> v = {0, i, 0, j, k};
                if (st.count(v)) continue;
                st.insert(v);
                set_instruction({0, i, 0, j, k}, 1, godown);
                set_instruction({1, i, 0, j, k}, 1, godown);
            }
        }
    }
    for (auto i : states_blocked) {
        for (auto j : states_blocked) {
            for (auto k : states_blocked) {
                vector<int> v = {0, i, j, 1, k};
                if (st.count(v)) continue;
                st.insert(v);
                set_instruction({0, i, j, 1, k}, 2, goleft);
            }
        }
    }
    for (auto i : states) {
        for (auto j : states) {
            for (auto k : states) {
                vector<int> v = {0, i, j, 0, k};
                if (st.count(v)) continue;
                st.insert(v);
                set_instruction({0, i, j, 0, k}, 1, goleft);
                set_instruction({1, i, j, 0, k}, 1, goleft);
            }
        }
    }
    for (auto i : states_blocked) {
        for (auto j : states_blocked) {
            for (auto k : states_blocked) {
                vector<int> v = {0, i, j, k, 1};
                if (st.count(v)) continue;
                st.insert(v);
                set_instruction({0, i, j, k, 1}, 2, goup);
            }
        }
    }
    for (auto i : states) {
        for (auto j : states) {
            for (auto k : states) {
                vector<int> v = {0, i, j, k, 0};
                if (st.count(v)) continue;
                st.insert(v);
                set_instruction({0, i, j, k, 0}, 1, goup);
                set_instruction({1, i, j, k, 0}, 1, goup);
            }
        }
    }
    // for (auto& v : st) {
    //     for (auto u : v) {
    //         cout << u << " ";
    //     }
    //     cout << "\n";
    // }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...