### paramsingh's blog

By paramsingh, history, 5 years ago,

Hi there. I've been trying to solve http://www.spoj.com/problems/AKBAR/ for some time, but the only thing I can seem to come up with is starting a BFS from each of the soldiers as the source until the soldier's strength depth. However, that approach gives me a TLE. Any help regarding how to solve this problem would be appreciated. Thanks.

Here's the code for my approach that I tried (TLE): https://gist.github.com/paramsingh/81d728295e6bd01860a0

• -1

 » 5 years ago, # |   0 say ALLAHU AKBAR and problem will solve itself.
•  » » 4 years ago, # ^ | ← Rev. 2 →   +4 Making FUN with one's Religion is not funny :)
•  » » 3 years ago, # ^ |   -19 RVyrodov You are a cheap minded person. You can't have fun with other religions. It is a very bad habit.
•  » » » 14 months ago, # ^ |   +12 okay.. say OLA hu UBER and it will take you ur solution destination :p
 » 5 years ago, # |   +2 using memset in lines 39+40 gave you the TLEyou don't need to do it for every soldier, if any city is previously visited by another soldier, then the flag turns false...remember that "every city is protected by one and only one soldier.According to Akbar , this is the optimum placement."if you need more help, just tell me ^_^
•  » » 5 years ago, # ^ |   +1 Oh man, that was a really stupid mistake! Thanks a lot for the help, I've got it accepted now.:)
•  » » » 18 months ago, # ^ |   0 can you help me with that TLE I'm unable understand above explanantion for AKBAR — Akbar , The great(spoj) problem
•  » » 5 years ago, # ^ |   0 Can you please tell me how to resolve TLE in this code http://ideone.com/ljgRhi ?
•  » » » 5 years ago, # ^ |   0 rghv same mistake:using memset in line 42 gave you the TLEyou don't need to do it for every soldier, if any city is previously visited by another soldier, then you should return false...remember that "every city is protected by one and only one soldier.According to Akbar , this is the optimum placement."
•  » » » » 5 years ago, # ^ |   0 Thank you.
•  » » 3 years ago, # ^ |   0 what is wrong in my soluton for AKBAR? https://ideone.com/AonT8k
•  » » » 3 years ago, # ^ |   0 I didn't even read a problem's statement, but by just looking to your code, I see some not reliable things... You should write:for (it = adj[s].begin(); it != adj[s].end(); it++) And since you don't need iterator, You better use:for (int value : adj[s])
•  » » » » 3 years ago, # ^ | ← Rev. 2 →   0 ROIgold it did'nt make any difference.now?
•  » » » » 13 days ago, # ^ |   0 nice
•  » » 2 years ago, # ^ | ← Rev. 2 →   0 Can you please help me? I'm getting WA in this problem.My code: here
 » 5 years ago, # |   0 Hey, I also used the same approach and getting TLE. Here's my code http://ideone.com/ljgRhi. Any help would be appreciated.
 » 18 months ago, # | ← Rev. 2 →   0 .
 » 12 months ago, # |   0 I have been trying the question for a day now. Can someone please tell me what is wrong in this solution? I don't want to put up a blog about this. So whoever sees this comment please help me. I would really appreciate it.
•  » » 12 months ago, # ^ | ← Rev. 2 →   0 Try these changes maybe: 1. Line 13 - parent[node] = -1; to parent[node] = node; 2. Line 25 - parent[next_node] = cur_node; to parent[next_node] = par[cur_node]; 3. Line 28 - else if(strength[next_node] != strength[cur_node] - 1 && parent[cur_node] != parent[next_node]) to else if(parent[cur_node] != parent[next_node]) 4. Line 67 - if(visited[i] == -1) to if(!visited[i]) 
•  » » » 12 months ago, # ^ |   0 Yeah, it worked. I also understood my mistake. Thanks a lot for your help.
 » 12 months ago, # |   0 Can someone please see my solution. I'm getting a WA. This is the link https://ideone.com/hnGtXy
 » 10 months ago, # | ← Rev. 2 →   0 Hey I am getting TLE in this problem; here is my code: HELP PLEASE! from collections import defaultdict for _ in range(int(input())): n,r,m = map(int,input().split()) adj = defaultdict(list) for i in range(r): a,b=map(int,input().split()) adj[a].append(b) adj[b].append(a) protected=defaultdict(bool) optimum=True for i in range(m): k,s = map(int,input().split()) visited=defaultdict(bool) if protected[k]:optimum=False;break if s==0: if protected[k]: optimum=False;break else: protected[k]=True;continue circle=[k] for j in range(s): temp=[] for u in circle: for v in adj[u]: if visited[v]:continue if protected[v]: optimum=False;break else: protected[v]=True visited[v]=True temp.append(v) if not optimum: break circle=temp.copy() if not optimum: break if not optimum: break # for i in under_prot: # protected[i]=True # under_prot=defaultdict(bool) if not optimum: print('No') elif len(protected)==n:print('Yes') else: print('No') 
 » 6 weeks ago, # |   +1 please help me with the same problem, why my solution getting WA??