Непонятная ошибка

Правка ru4, от nicky_ua, 2015-08-10 12:13:27

Добрый вечер! Решал одну задачу, наткнулся на такую ошибку:

ll n;
cin >> n;
ll fn = n;
......
ll a = n * (n + 1);
ll b = 10000000000000 * n ;
ll c = n * n;
if (n != fn)
{
	printf("ERROR!!");
}
if (n < 0)
{
	printf("ERROR!!");
}
if (a < 0)
{
	printf("ERROR!!");
}
if (b < 0)
{
	printf("ERROR!!");
}
if (c < 0)
{
	printf("ERROR!!");
}

Опытным путем установил, что в первый if никогда не попадает программа, а во второй попадает. С чем это может быть связано? Переменная fn встречается 2 раза в коде. 1 <= n <= 10^6

UPD: программа из всех ифов задохит только в if(a < 0).....

UPD1: я нашел ошибку. Она была в том, что я обращался к элементам map<ll, ll>, которых в мапе не было. И это, видимо, повлекло утечку памяти или что-то в этом роде

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
ru4 Русский nicky_ua 2015-08-10 12:13:27 185
ru3 Русский nicky_ua 2015-08-09 23:11:43 208 Мелкая правка: '= 10^6`\nUPD: пр' -strongp
ru2 Русский nicky_ua 2015-08-09 23:02:28 94 Мелкая правка: 'аза в коде\n`1 <= n ' -> 'аза в коде.\n`1 <= n '
ru1 Русский nicky_ua 2015-08-09 22:50:49 365 Первая редакция (опубликовано)