From a2b1733a4a89e9ac27dc931a5051f8dcfa1ca473 Mon Sep 17 00:00:00 2001 From: vng Date: Thu, 23 Jan 2014 13:42:27 +0300 Subject: [PATCH] [search] Minor fix for longest houses sequence. --- search/house_detector.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/search/house_detector.cpp b/search/house_detector.cpp index e1b2c36764..6a7eaf3ae9 100644 --- a/search/house_detector.cpp +++ b/search/house_detector.cpp @@ -661,13 +661,17 @@ void LongestSubsequence(vector const & houses, { if (cmp(houses[i].m_house, houses[j].m_house) == cmp(houses[j].m_house, houses[i].m_house)) continue; - if (cmp(houses[i].m_house, houses[j].m_house) && v[i].increaseValue + 1 > v[j].increaseValue) + if (cmp(houses[i].m_house, houses[j].m_house) && v[i].increaseValue + 1 >= v[j].increaseValue) { + if (v[i].increaseValue + 1 == v[j].increaseValue && houses[v[j].prevIncreasePos].m_distance < houses[i].m_distance) + continue; v[j].increaseValue = v[i].increaseValue + 1; v[j].prevIncreasePos = i; } - if (!cmp(houses[i].m_house, houses[j].m_house) && v[i].decreaseValue + 1 > v[j].decreaseValue) + if (!cmp(houses[i].m_house, houses[j].m_house) && v[i].decreaseValue + 1 >= v[j].decreaseValue) { + if (v[i].decreaseValue + 1 == v[j].decreaseValue && houses[v[j].prevDecreasePos].m_distance < houses[i].m_distance) + continue; v[j].decreaseValue = v[i].decreaseValue + 1; v[j].prevDecreasePos = i; }