Submission #19521567


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
constexpr int Inf = 1000000030;
constexpr ll INF= 2000000000000000000;
constexpr ll MOD = 998244353;
const double PI = 3.1415926535897;
typedef pair<int,int> P;
typedef pair<int,P> PP;

template<class T> inline bool chmax(T &a, T b) {
    if (a < b) {
        a = b;
        return 1;
    }
    return 0;
}

template<class T> inline bool chmin(T &a, T b) {
    if (a > b) {
        a = b;
        return 1;
    }
    return 0;
}

ll mod(ll val, ll M) {
    val = val % M;
    if(val < 0) {
        val += M;
    }
    return val;
}

template<typename T>
T RS(T N, T P, T M){
    if(P == 0) {
        return 1;
    }
    if(P < 0) {
        return 0;
    }
    if(P % 2 == 0){
        ll t = RS(N, P/2, M);
        if(M == -1) return t * t;
        return t * t % M;
    }
    if(M == -1) {
        return N * RS(N,P - 1,M);
    }
    return N * RS(N, P-1, M) % M;
}

int three[15];

int N,Q;
int dist[2000010];

int encode(string S) {
    int res = 0;
    for(int i = 0;i < N;i++) {
        res += (S[i] - 'A') * three[i];
    }
    return res;
}

string decode(int A) {
    string res;
    for(int i = 0;i < N;i++) {
        res.push_back('A' + A % 3);
        A /= 3;
    }
    return res;
}

int main() {
    cin >> N >> Q;
    three[0] = 1;
    for(int i = 1;i < 15;i++) {
        three[i] = 3 * three[i - 1];
    }
    for(int i = 0;i < 2000010;i++) {
        dist[i] = -1;
    }
    queue<int> que;
    for(int i = 0;i <= N;i++) {
        for(int j = 0;i + j <= N;j++) {
            int k = N - i - j;
            string cnt;
            for(int l = 0;l < i;l++) {
                cnt.push_back('A');
            }
            for(int l = 0;l < j;l++) {
                cnt.push_back('B');
            }
            for(int l = 0;l < k;l++) {
                cnt.push_back('C');
            }
            int cnt2 = encode(cnt);
            dist[cnt2] = 0;
            que.push(cnt2);
        }
    }
    while(!que.empty()) {
        int cur = que.front();
        que.pop();
        string S = decode(cur);
        for(int k = 2;k <= N;k++) {
            string T = S;
            reverse(T.begin(),T.begin() + k);
            int to = encode(T);
            if(dist[to] != -1) continue;
            dist[to] = dist[cur] + 1;
            que.push(to);
        }
    }
    for(int i = 0;i < Q;i++) {
        string S;
        cin >> S;
        int cnt = 0;
        for(int j = 0;j < N;j++) {
            cnt += (S.at(j) - 'A') * three[j];
        }
        cout << dist[cnt] << endl;
    }
}

Submission Info

Submission Time
Task B - パンケーキ (Pancake)
User AItale
Language C++ (GCC 9.2.1)
Score 100
Code Size 2690 Byte
Status AC
Exec Time 775 ms
Memory 13100 KiB

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3 Subtask4
Score / Max Score 0 / 0 4 / 4 10 / 10 60 / 60 26 / 26
Status
AC × 4
AC × 20
AC × 30
AC × 34
AC × 57
Set Name Test Cases
Sample sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
Subtask1 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt
Subtask2 sample-01.txt, sample-02.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt
Subtask3 sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt
Subtask4 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 02-01.txt, 02-02.txt, 02-03.txt, 02-04.txt, 02-05.txt, 02-06.txt, 02-07.txt, 02-08.txt, 03-01.txt, 03-02.txt, 03-03.txt, 03-04.txt, 03-05.txt, 03-06.txt, 03-07.txt, 03-08.txt, 03-09.txt, 03-10.txt, 03-11.txt, 03-12.txt, 03-13.txt, 04-01.txt, 04-02.txt, 04-03.txt, 04-04.txt, 04-05.txt, 04-06.txt, 04-07.txt, 04-08.txt, 04-09.txt, 04-10.txt, 04-11.txt, 04-12.txt, sample-01.txt, sample-02.txt, sample-03.txt, sample-04.txt
Case Name Status Exec Time Memory
01-01.txt AC 12 ms 11304 KiB
01-02.txt AC 9 ms 11440 KiB
01-03.txt AC 17 ms 11440 KiB
01-04.txt AC 9 ms 11232 KiB
01-05.txt AC 12 ms 11380 KiB
01-06.txt AC 12 ms 11404 KiB
01-07.txt AC 12 ms 11356 KiB
01-08.txt AC 15 ms 11412 KiB
01-09.txt AC 13 ms 11408 KiB
01-10.txt AC 9 ms 11304 KiB
01-11.txt AC 10 ms 11280 KiB
01-12.txt AC 11 ms 11332 KiB
01-13.txt AC 8 ms 11408 KiB
01-14.txt AC 14 ms 11220 KiB
01-15.txt AC 14 ms 11380 KiB
01-16.txt AC 10 ms 11292 KiB
01-17.txt AC 12 ms 11440 KiB
01-18.txt AC 8 ms 11412 KiB
01-19.txt AC 15 ms 11408 KiB
01-20.txt AC 11 ms 11432 KiB
02-01.txt AC 161 ms 11356 KiB
02-02.txt AC 163 ms 11276 KiB
02-03.txt AC 170 ms 11308 KiB
02-04.txt AC 170 ms 11228 KiB
02-05.txt AC 173 ms 11412 KiB
02-06.txt AC 171 ms 11304 KiB
02-07.txt AC 172 ms 11384 KiB
02-08.txt AC 171 ms 11404 KiB
03-01.txt AC 183 ms 11864 KiB
03-02.txt AC 183 ms 11936 KiB
03-03.txt AC 183 ms 11968 KiB
03-04.txt AC 601 ms 13096 KiB
03-05.txt AC 599 ms 12924 KiB
03-06.txt AC 602 ms 13100 KiB
03-07.txt AC 601 ms 13100 KiB
03-08.txt AC 605 ms 12996 KiB
03-09.txt AC 597 ms 13044 KiB
03-10.txt AC 601 ms 13048 KiB
03-11.txt AC 602 ms 12972 KiB
03-12.txt AC 601 ms 13004 KiB
03-13.txt AC 604 ms 13000 KiB
04-01.txt AC 767 ms 12920 KiB
04-02.txt AC 171 ms 11428 KiB
04-03.txt AC 181 ms 11412 KiB
04-04.txt AC 190 ms 11312 KiB
04-05.txt AC 766 ms 12912 KiB
04-06.txt AC 761 ms 13052 KiB
04-07.txt AC 227 ms 11512 KiB
04-08.txt AC 346 ms 12000 KiB
04-09.txt AC 346 ms 11916 KiB
04-10.txt AC 768 ms 13028 KiB
04-11.txt AC 775 ms 13000 KiB
04-12.txt AC 763 ms 13100 KiB
sample-01.txt AC 9 ms 11404 KiB
sample-02.txt AC 9 ms 11408 KiB
sample-03.txt AC 604 ms 13072 KiB
sample-04.txt AC 599 ms 13024 KiB