#include <iostream>
#include <cstdint>
using namespace std;

enum class AdcConfig: uint8_t{
    ChannelEnable = 1,
    InterruptEnable = 1 << 1,
    DMAEnable = 1<< 2
};

void printConfig(uint8_t cfg){
    if(cfg & static_cast<uint8_t>(AdcConfig::ChannelEnable)){
        cout << "ChannelEnable" << " ";
    }
    if(cfg & static_cast<uint8_t>(AdcConfig::InterruptEnable)){
        cout << "InterruptEnable" << " ";
    }
    if(cfg & static_cast<uint8_t>(AdcConfig::DMAEnable)){
        cout << "DMAEnable";
    }
    if(!(cfg & static_cast<uint8_t>(AdcConfig::ChannelEnable)) && !(cfg & static_cast<uint8_t>(AdcConfig::InterruptEnable)) && !(cfg & static_cast<uint8_t>(AdcConfig::DMAEnable))){
        cout << "None";
    }
    

}

int main() {
    int ch, intr, dma;
    cin >> ch >> intr >> dma;

    uint8_t cfg = 0;
    if (ch)   cfg |= static_cast<uint8_t>(AdcConfig::ChannelEnable);
    if (intr) cfg |= static_cast<uint8_t>(AdcConfig::InterruptEnable);
    if (dma)  cfg |= static_cast<uint8_t>(AdcConfig::DMAEnable);

    printConfig(cfg);
    return 0;
}

Solving Approach

 

 

 

 

Upvote
Downvote
Loading...

Input

1 0 1

Expected Output

ChannelEnable DMAEnable