Помогите упростить код C++

У меня есть рабочий код, но он СЛИШКОМ долго ДУМАЕТ , из-за чего не подходит под некоторые решения. Как ускорить выполнение этого кода программы, не меняя его существенно(чтобы он делал тоже самое что и сейчас, НО быстрее).Исполнение одного запроса около 4 секунды, я его сузил до 0.5 секунды, а желательно до 0.01 с

 #include <iostream>
 #include <bitset>
 int main()
 {
     long long a;
     int k;
     std::cin >> a >> k;
     int c;
     std::cin >> c;
     if (c == 1) {
         for (std::size_t i = 0; i < k; +i) a &= ~(static_cast <long long>(1) << i);
         std::cout << a;
     }
     else if (c == 2) {
         a ^= (static_cast <long long>(1) << k);
         std::cout << a;
     }
     else if (c == 3) {
         a = (static_cast <long long>(1) << k) - 1;
         std::cout << a;
     }
 }

Ответы (1 шт):

Автор решения: AR Hovsepyan
long long a,
    b{ 1 };      
unsigned k, c;
std::cin >> a >> k >> c;
b <<= k;    

switch (c)
{
case 1:
    a &= b - 1;
     break;
case 2:
    a ^= b;
    break;
default:
    a = b - 1;       
}
cout << a;
→ Ссылка