Submission #2247735


Source Code Expand

#include <iostream>
#include <string>
#include <cmath>

#define INC(i, a, b) for(int i = a; i < b; ++i)
#define DEC(i, a, b) for(int i = a; i > b; --i)
#define REP(i, n) INC(i, 0, n)

typedef unsigned int uint;
typedef unsigned long ul;
typedef long long  ll;
typedef unsigned long long ull;

void TFprint(bool b, std::string T, std::string F){
    if(b){
        std::cout << T << std::endl;
    }else{
        std::cout << F << std::endl;
    }
}

int simulation(std::string str, char c, int min){
    bool isSingleChar = true;
    uint len = str.length();
    int ret = 0;
    while(true){

        isSingleChar = true;

        REP(i, len){
            if(str.at(i) != c){
                isSingleChar = false;
                break;
            }
        }
        if(isSingleChar){
            break;
        }

        len--;
        REP(i, len){
            if(str.at(i + 1) == c){
                str.at(i) = c;
            }
        }
        //std::cout << str.substr(0, len) << std::endl;
        ret++;
        if(ret > min){
            ret = INT32_MAX;
            break;
        }
    }
    return ret;
}

int main(){
    std::string str;
    std::cin >> str;
    bool atoz[26] = {false};
    REP(i, str.length()){
        atoz[str.at(i) - 'a'] = true;
    }
    int min = INT32_MAX;
    char c;
    REP(i, 26){
        if(atoz[i]){
            int temp = simulation(str, i + 'a', min);
            if(min > temp){
                min = temp;
            }
        }
    }
    std::cout << min << std::endl;
    return 0;
}

Submission Info

Submission Time
Task A - Shrinking
User kumachan_atcoder
Language C++14 (GCC 5.4.1)
Score 300
Code Size 1613 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 4
AC × 14
Set Name Test Cases
Sample 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt
All 0_00.txt, 0_01.txt, 0_02.txt, 0_03.txt, 1_00.txt, 1_01.txt, 1_02.txt, 1_03.txt, 1_04.txt, 1_05.txt, 1_06.txt, 1_07.txt, 1_08.txt, 1_09.txt
Case Name Status Exec Time Memory
0_00.txt AC 1 ms 256 KB
0_01.txt AC 1 ms 256 KB
0_02.txt AC 1 ms 256 KB
0_03.txt AC 1 ms 256 KB
1_00.txt AC 1 ms 256 KB
1_01.txt AC 1 ms 256 KB
1_02.txt AC 1 ms 256 KB
1_03.txt AC 1 ms 256 KB
1_04.txt AC 1 ms 256 KB
1_05.txt AC 1 ms 256 KB
1_06.txt AC 1 ms 256 KB
1_07.txt AC 1 ms 256 KB
1_08.txt AC 1 ms 256 KB
1_09.txt AC 1 ms 256 KB