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

enum class AdcConfig : uint8_t {
    ChannelEnable   = 1 << 0,  // 0b00000001
    InterruptEnable = 1 << 1,  // 0b00000010
    DMAEnable       = 1 << 2   // 0b00000100
};

// implement void printConfig(uint8_t cfg)
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 == 0)
        cout << "None\t";
}


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;
}
Loading...

Input

1 0 1

Expected Output

ChannelEnable DMAEnable