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

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

void printConfig(uint8_t cfg) {
   if (cfg & ChannelEnable) {
      cout << "ChannelEnable ";
   }
   if (cfg & InterruptEnable) {
      cout << "InterruptEnable ";
   }
   if (cfg & DMAEnable) {
      cout << "DMAEnable ";
   }
   
   if ((cfg & (ChannelEnable | InterruptEnable | DMAEnable)) == 0) {
      cout << "None";
   }

   cout << "\n";
}

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

Input

1 0 1

Expected Output

ChannelEnable DMAEnable