Блог пользователя sonjoydabnath

Автор sonjoydabnath, история, 11 лет назад, По-английски

Today I tried to solve Problem D(div2) of last Contest ( Codeforces Round 310 (Div. 2) ). In this problem I used lower_bound() function on a set of pair of pair and int ( set< pair< pair<long long, long long> , int > > ). Here is my ACed submission 11834954 and my TLE submission 11835029 . I don't know why I get TLE in second code. :S

Ok, Let me explain what I 've done here, I have a set like set< pair< pair<long long, long long> , int > > bridges on which I tried to apply lower_bound() function ( in line number 171 in my both code ). In first submission I used lower_bound() as like bridges.lower_bound(make_pair(keyValue,0LL)) and I got AC. But in my second code I used lower_bound() as like lower_bound(bridges.begin(),bridges.end(),make_pair(keyValue,0LL)) and I got TLE on case 11.

What is the difference between calling lower_bound() function in above mentioned 2 way ?

  • Проголосовать: нравится
  • +1
  • Проголосовать: не нравится

»
11 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Auto comment: topic has been updated by sonjoydabnath (previous revision, new revision, compare).

»
11 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится

Unfortunately, lower_bound(set.begin(), set.end(), x) works in O(N). Use set.lower_bound(x) to reach O(logN) complexity.