Вам дан исходный код некоторой программы, для удобства он приведён на нескольких популярных языках программирования. Данная программа читает два целых числа $$$a$$$ и $$$n$$$ и затем выводит одно целое число — ответ.
При больших входных данных эта программа может работать довольно долго. Ваша задача — написать альтернативную программу, которая будет выдавать точно такие же ответы, но работать не более одной секунды при любых входных $$$a$$$ и $$$n$$$ в диапазоне от $$$0$$$ до $$$10^{18}$$$.
Текст на C++:
#include <iostream>
int main() {
long long a, n;
std::cin >> a >> n;
long long b = 0;
for (long long i = 0; i < n; i++) {
b = (b - a) & a;
}
std::cout << b << std::endl;
}
Текст на Python: a = int(input())
n = int(input())
b = 0
for _ in range(n):
b = (b - a) & a
print(b)
Текст на Java:
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
long a = in.nextLong();
long n = in.nextLong();
long b = 0;
for (long i = 0; i < n; i++) {
b = (b - a) & a;
}
System.out.println(b);
}
}
Текст на C#:
using System;
public class Solution {
static void Main() {
long a = long.Parse(Console.ReadLine());
long n = long.Parse(Console.ReadLine());
long b = 0;
for (long i = 0; i < n; i++) {
b = (b - a) & a;
}
Console.WriteLine(b);
}
}
Текст на Pascal:
var
a, b, n, i: int64;
begin
read(a, n);
b := 0;
i := 0;
while i < n do begin
b := (b - a) and a;
inc(i);
end;
writeln(b);
end.
Первая строка входных данных содержит целое число $$$a$$$, вторая строка содержит целое число $$$n$$$ ($$$0 \le a, n \le 10^{18}$$$).
Выведите одно целое число — ответ.
3 2
2
5 6
4
Предполагается, что отрицательные целые числа в памяти представляются в дополнительном коде как в большинстве популярных процессорных архитектур (включая архитектуру x86-64). В дополнительном коде отрицательное число $$$-x$$$ сохраняется в памяти как дополнение до двойки в степени числа разрядов, то есть $$$2^{64}-x$$$.
Заметим, что в языке Питон целые числа не ограничены фиксированной разрядностью. Но это не влияет на ответ, поэтому вы можете считать, что утверждение выше верно и для Питона.