TLE in UPDATEIT spoj

hello everyone,goodEvening…i was doing UPDATEIT question from spoj.This is my very first question on Binary indexed trees.I am getting repetitive TLE.Can anybody check this…Thanks a lot… :slight_smile: :slight_smile: solution link

1 Like

Use scanf() and printf() and you’ll get AC. I coded the very same but used stdio i/o. If you still get TLE, just ask here.

See line 9 in your code,

for(;k<=n;k+= (k&(-k))); // note semicolon here
  ft[k]+=v; // this statement gets executed only for the last k when whole of the for loop is executed due to the semicolon. This is the mistake in your code.

All the best!

1 Like

You can also add the following line at the start of main():

ios_base::sync_with_stdio(false);cin.tie(0);

it still gives tle…i think my logic is wrong

Before every operation you need to increase the index by 1 just because we use base indexing 1 in FT. Hope this helps

Sorry but I didn’t get you :slight_smile: can you please elaborate…not even getting which part of code you are talking about…Anyway thanks

@doodle90 Correct line 9 in your code(see semicolon there, it shouldn’t be).

@damn_me thanks(as always):slight_smile: :)…if your code is that similar to mine and you got Ac…can you please share your code because i am getting repetitively wrong answers.Don’t know where i am going wrong…Or please try submitting my code from your account

@doodle90 My code, http://ideone.com/z9kb5I If still unable to rectify, you may ask here… Remember keeping long long int for query function.

Use BIT to solve this question.

@mansigupta19 Did you see the code? He has used BIT only…

@damn_me thanks…I figured out what was wrong.Actually i made ft[10009] as global array which remains same for all testcases.Filling it again with 0 helped me thanks a lot

1 Like

Nopes! :stuck_out_tongue: sorry