Stavo cercando di fare il problema “Rubabandiera v2”, e il codice risolve bene i subtask 1, 2, e 3 anche in poco tempo, ma con i subtask 4 e 5 non ne fa neanche uno e genera un’errore (errore 8) che dice essere causato dal superamento del limite della memoria, ma poi guardando la memoria utilizzata si vede che è molto inferiore del limite. Non ho la minima idea di dove possa essere l’errore.
#include <iostream>
using namespace std;
int potenza(int base, int ex)
{
long long r = 1;
for (int i=0; i<ex; i++){
r *=(long long)base;
}
return r;
}
long long edo(long long n)
{
int exp = 0;
long long m = n;
while (n!=1){
n /= 2;
exp++;
}
long long log = potenza(2, exp);
return 2*(m%log);
}
int main()
{
long long n;
cin >> n;
long long a;
for (long long i=0; i<n; i++){
cin >> a;
cout << 1+edo(a) <<endl;
}
return 0;
}