Dijkstra Algorithm: Tutorial with Code & Example Question | CP Course | EP 82

Поділитися
Вставка
  • Опубліковано 22 гру 2024

КОМЕНТАРІ • 201

  • @anexocelisia9377
    @anexocelisia9377 2 роки тому +52

    Dijkstra's Algo :
    You need to find the shortest distance from the source to all the other nodes in the graph. It can be done over directed or undirected graph.
    First you need to maintain a pq Or set or multiset, then you need to perform bfs over every child of the visited node and update the current distance to the minimum possible one or make no changes. Then simply do this for all the nodes, untill all the nodes are marked visited.
    At the end we have the shortest distance, from source to all the other nodes in the graph.

    • @JainendraDwivediElectro
      @JainendraDwivediElectro 2 роки тому +3

      added in notes 🙂

    • @kangsoo5222
      @kangsoo5222 Рік тому

      what is bfs, pq

    • @patrickbateman3912
      @patrickbateman3912 Рік тому +1

      @@kangsoo5222 bfs can also find shortest path because of level wise traversal but the only diff is Dijkstra can find with the weighted graph while for bfs it should be equally weighted

    • @tushar3549
      @tushar3549 7 місяців тому +1

      #include
      using namespace std;
      const int inf = 1e7;
      int main() {
      int nodes, edges;
      cin >> nodes >> edges;
      // Initialize the graph as an adjacency list
      vector graph(nodes + 1);

      // Initialize distance array with infinity
      vector dist(nodes + 1, inf);
      // Read edges and weights
      for (int i = 0; i < edges; ++i) {
      int u, v, w;
      cin >> u >> v >> w;
      graph[u].push_back({v, w});
      graph[v].push_back({u, w});
      }
      int source;
      cin >> source;
      dist[source] = 0;
      // Using a set to keep track of vertices with their current distance
      set st; // {weight, vertex}
      st.insert({0, source});
      // Dijkstra's algorithm
      while (!st.empty()) {
      auto node = *st.begin();
      int v = node.second;
      int v_dist = node.first;
      st.erase(st.begin());
      // Traverse through all neighbors of vertex v
      for (auto child : graph[v]) {
      int child_v = child.first;
      int w = child.second;
      // Relaxation step
      if (dist[v] + w < dist[child_v]) {
      dist[child_v] = dist[v] + w;
      st.insert({dist[child_v], child_v});
      }
      }
      }
      // Output distances from source to all nodes
      for (int i = 1; i

  • @kathanvakharia
    @kathanvakharia 7 місяців тому +1

    If someones is intersted in knowing the dist array check that LUV mentioned at 24:23, Here it is:
    //if edges from this node has already
    //been relaxed; avoid work
    if(dist[u] < d)
    continue;
    The idea is simple, the duplicate entri's 'd' (distance from source) will be more than optimal value of dist[u].

    • @mradultiwari9864
      @mradultiwari9864 Місяць тому

      we can also write this check as : if (dist[u] != d)

  • @ChandraShekhar-by3cd
    @ChandraShekhar-by3cd 3 роки тому +12

    Best Explanation on Every topics. Pls also continue with the LeetCode practice. I think you should also add Leetcode daily challenge which happens in the leetcode. Your explanation will be very helpful for everyone. Thanks a lot.

  • @AdityaSingh-ql9ke
    @AdityaSingh-ql9ke 3 роки тому +7

    Best teacher . Please continue with your work.

  • @manushukla7136
    @manushukla7136 3 роки тому +16

    There is no need for a visited array because once the distance to a node is least, it will never be added again in the priority queue.

    • @vivek8438
      @vivek8438 3 роки тому +7

      Right but keeping vis array makes sol optimised as you will not process for nodes which you know has got min distance

    • @satvikgoje1165
      @satvikgoje1165 Рік тому

      its need cuz sometimes it might give you TLE, node will not be pushed, but the inner for loop will run to check all its neighbors

  • @sahilanand30
    @sahilanand30 2 роки тому +2

    My exam is tomorrow and today I am blessed that your video is recommended :)

  • @saroarzahansojib6812
    @saroarzahansojib6812 3 роки тому +1

    great boss..
    Love from Bangladesh 🇧🇩

  • @unibrow9384
    @unibrow9384 3 роки тому +2

    Long awaited video

  • @nawabkhan4916
    @nawabkhan4916 2 роки тому +3

    💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛Sexy video.

  • @tushar3549
    @tushar3549 7 місяців тому +2

    #include
    using namespace std;
    const int inf = 1e7;
    int main() {
    int nodes, edges;
    cin >> nodes >> edges;
    // Initialize the graph as an adjacency list
    vector graph(nodes + 1);

    // Initialize distance array with infinity
    vector dist(nodes + 1, inf);
    // Read edges and weights
    for (int i = 0; i < edges; ++i) {
    int u, v, w;
    cin >> u >> v >> w;
    graph[u].push_back({v, w});
    graph[v].push_back({u, w});
    }
    int source;
    cin >> source;
    dist[source] = 0;
    // Using a set to keep track of vertices with their current distance
    set st; // {weight, vertex}
    st.insert({0, source});
    // Dijkstra's algorithm
    while (!st.empty()) {
    auto node = *st.begin();
    int v = node.second;
    int v_dist = node.first;
    st.erase(st.begin());
    // Traverse through all neighbors of vertex v
    for (auto child : graph[v]) {
    int child_v = child.first;
    int w = child.second;
    // Relaxation step
    if (dist[v] + w < dist[child_v]) {
    dist[child_v] = dist[v] + w;
    st.insert({dist[child_v], child_v});
    }
    }
    }
    // Output distances from source to all nodes
    for (int i = 1; i

  • @satanshuag
    @satanshuag 3 роки тому +1

    Was waiting for this.... Thankyou SIr!

  • @avantikanagrale2084
    @avantikanagrale2084 2 роки тому

    Bestestt explaination everrr

  • @ayush_tyagi_01
    @ayush_tyagi_01 3 роки тому +1

    Back in action 🔥🔥

  • @abhaypratap9898
    @abhaypratap9898 3 роки тому +1

    Luv you luv bhaiya 💗

  • @showravdhar7724
    @showravdhar7724 7 місяців тому +2

    ```If you are having trouble in leetcode to declare N and INF, write like this```
    class Solution {
    public:
    constexpr static int N = 1e4;
    constexpr static int INF = 1e7 + 123;
    int dijkstra(int source, int nodes, vector< pair > graph[N] ) {
    }
    int networkDelayTime(vector& times, int n, int k) {
    vector graph[N];// {node,weight}
    for (auto vec : times) {
    // times is a vector of vector, inside vector size is 3
    graph[vec[0]].push_back({vec[1], vec[2]});
    }
    int ans = dijkstra(k, n, graph);
    return ans;
    }

  • @_inspireverse___
    @_inspireverse___ 2 роки тому +1

    💛 Awesome explanation 👍🙏

  • @rdias002
    @rdias002 2 роки тому

    Why do we need a set when we already have the dist[ ]?

  • @TECHADVICETEAM
    @TECHADVICETEAM 3 роки тому +1

    PLease solve more leetcode questions, If possible take live problem solving session!!

  • @amisha2545
    @amisha2545 3 роки тому +1

    👏👏amazing content!

  • @shortsrace
    @shortsrace 8 місяців тому

    💛 awesome 🎉

  • @shantanu2322
    @shantanu2322 3 роки тому

    Love you bhaiya love you💛💛💛💛💛💛

  • @varunajmera
    @varunajmera 2 роки тому

    fabulous work for Dijkstra and Floyd Warshall. pls explain Bellman-Ford

  • @osamaali7959
    @osamaali7959 2 роки тому

    Behtareen

  • @ShivamKendre-fc3su
    @ShivamKendre-fc3su 6 місяців тому

    Mast explanation

  • @manikantasai6118
    @manikantasai6118 3 роки тому +4

    Hope our family reaches to 100k before next video.

  • @sahilanand30
    @sahilanand30 3 роки тому +1

    Best 🔥

  • @nittinrana2277
    @nittinrana2277 3 роки тому

    Welcome back 🔥

  • @ravinderchoudhary7783
    @ravinderchoudhary7783 2 роки тому +2

    NOTE--- Why we use visited array when we get answer without that also because we don't insert a vertex into set until and unless we got less distance from current distance.

    • @rdias002
      @rdias002 2 роки тому +2

      Because as explained in the example at the beginning, a node could be inserted twice with different distances. So we do not want to process it again the 2nd time.

    • @pkyadav6230
      @pkyadav6230 Рік тому

      ​@@rdias002bcause it helps not visit the node again if it is a non directed graph....

  • @parthkabra8880
    @parthkabra8880 3 роки тому +5

    24:54 the algorithm would run for a infinite time, because you are not removing the node from the set. anyways, thanks for your efforts

  • @AhmadMaqsood-j4v
    @AhmadMaqsood-j4v Рік тому

    thanks alot big brother

  • @rahulchowdhury7635
    @rahulchowdhury7635 Рік тому

    Nice video! Love you babbar.

  • @ebrahim1bd
    @ebrahim1bd 11 місяців тому

    We miss you Luv ❤

  • @unknown_coder7960
    @unknown_coder7960 3 роки тому +12

    Bhaiyya 500 Leetcode questions ho gaye bas 1000 bache h Elon Musk se aage jane ke liye 🙂🌝

  • @polymorphic4401
    @polymorphic4401 2 роки тому

    Thank you sir your video very helpfull😇

  • @wolfrikz7238
    @wolfrikz7238 3 роки тому +2

    Thanks for this amazing explanation

  • @surjeetsingh-cp6hn
    @surjeetsingh-cp6hn 3 роки тому +2

    bhaiya iske baad dynamic programming pdha dena plzz

  • @shubhammittal2367
    @shubhammittal2367 2 роки тому

    AWmsm ❤❤

  • @rishav4702
    @rishav4702 2 роки тому +1

    Hello thanks for the video i think i used similar logic to implement the above in java i had a question for you what if someone says if we have to apply heuristic to this and convert it into a* algorithm then(for now i can only think of ranking nodes on the basis of their children) and the giving priority to those nodes having more children! What's your thoughts about this

  • @_inspireverse___
    @_inspireverse___ 2 роки тому

    one doubt , why are we popping just minimum distance node (node at top) from *set* ??

  • @rishabh507
    @rishabh507 3 роки тому +1

    Note taking app konsa hai bhaiya ?

  • @esfantastic-shorts
    @esfantastic-shorts 3 роки тому +2

    Bhai linked list me bahot problem hoti ... Is pr bhi video Banao bhai please

  • @mdnafisiqbal7325
    @mdnafisiqbal7325 10 місяців тому

    annoing background music !

  • @Rahulsharma-ol8rt
    @Rahulsharma-ol8rt 3 роки тому

    Thank you sir

  • @aledutron
    @aledutron 3 роки тому

    ❤Thank You❤

  • @MainakDev
    @MainakDev 2 роки тому

    I love the music

  • @karansinghnegi9384
    @karansinghnegi9384 3 роки тому

    You are *legend*

  • @joydeepdas4105
    @joydeepdas4105 3 роки тому +1

    Bhaiya jaldi jaldi videos dal diya karo!!

  • @wasifnadeem6209
    @wasifnadeem6209 Рік тому

    I don't know why I have this doubt, but can't we use map instead of set ?

  • @shivamnegi7552
    @shivamnegi7552 2 роки тому

    why are we using PQ ? we can simply do BFS also .
    vector dijkstra(int V, vector adj[], int S)
    {
    vector dist(V,INT_MAX);
    dist[S]=0;
    queue q;
    q.push(S);
    while(!q.empty()){
    int node=q.front();
    q.pop();
    for(auto i:adj[node])
    {
    if(dist[node]+i[1]

    • @mallakbasheersyed1859
      @mallakbasheersyed1859 2 роки тому

      as per the logic of the algo we need to visit min weighted neighbour first,that is why we require priority queue

    • @shivamnegi7552
      @shivamnegi7552 Рік тому

      @@mallakbasheersyed1859 thenks

  • @satanshuag
    @satanshuag 3 роки тому

    How to store the shortest path of every source to node?

  • @mkhussain3099
    @mkhussain3099 2 роки тому

    Please explain bellman Ford i know the algorithm but struggling to find logic behind that 😢

  • @vanshajwore7624
    @vanshajwore7624 4 місяці тому

    great

  • @shubhamkumargupta3543
    @shubhamkumargupta3543 2 роки тому

    Is there any use of visited array? The code works fine without it too.

    • @rahulmaurya597
      @rahulmaurya597 2 роки тому +1

      you can save some iteration nothing else

    • @faiazmahmud6277
      @faiazmahmud6277 10 місяців тому

      u will get tle for larger input

  • @kamalchhimwal9362
    @kamalchhimwal9362 Рік тому

    💛captain

  • @bharathkumar5870
    @bharathkumar5870 3 роки тому

    thanks bro

  • @BadveliSridharReddy
    @BadveliSridharReddy 8 місяців тому

    I think in worst case, the set size can become order of V^2, not V as said by striver🤔🤔

  • @amt.7rambo670
    @amt.7rambo670 Рік тому

    class Solution {
    public:
    const int N = 1e5+10;
    const int INF = 1e9+10;
    int djikstra(int source ,int n, vector g){
    vector vis(N,0);
    vector dist(N,INF);
    set st;
    st.insert({0,source});
    dist[source] = 0;
    while(st.size() > 0){
    auto node = *st.begin();
    int v = node.second;
    int v_dist = node.first;
    st.erase(st.begin());
    if(vis[v]) continue;
    vis[v] = 1;
    for(auto child : g[v]){
    int child_v = child.first;
    int wt = child.second;
    if(dist[v] + wt < dist[child_v]){
    dist[child_v] = dist[v] + wt;
    st.insert({dist[child_v], child_v});
    }
    }
    }
    int ans = 0;
    for(int i = 1; i decltype(__cont.begin())
    ^ ~~~~~
    /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/range_access.h:58:5: note: candidate template ignored: substitution failure [with _Container = std::pair]: no member named 'begin' in 'std::pair'
    begin(const _Container& __cont) -

  • @musicascade4408
    @musicascade4408 3 роки тому

    bestt!!!!

  • @focus15624
    @focus15624 3 роки тому +2

    Is CP book Competitive Programming 4 by Steven Halim any help?

  • @aarushiagarwal8938
    @aarushiagarwal8938 2 роки тому +1

    💛💛💛💛💛💛💛

  • @subhajitmandal7576
    @subhajitmandal7576 2 роки тому

    dijkstra💛

  • @aayush2.0
    @aayush2.0 Рік тому +1

    #include
    using namespace std;
    // N represent the maxm nodes the graph can have
    // INF represent the infinity
    const int N = 1e5 + 10;
    const int INF = 1e9 + 10;
    // pair--> node, weight
    vector g[N];
    void dijkstra(int source, vector& dist)
    {
    vector vis(N, 0);
    // pair--> weight, node
    // weight first hai q ki sorting automatic on first
    set st;
    st.insert({0, source});
    dist[source] = 0;
    while (!st.empty())
    {
    // getting the smallest value from the set \|/
    auto node = *st.begin();
    int distance = node.first;
    int v = node.second;
    //jo item list se nikaal rahe hain usko erase v krna hai set se
    st.erase(st.begin());
    // agr node already visited hai to skip
    if (vis[v] == 1)
    continue;
    vis[v] = 1;
    // children node pe jayenge
    // child represents an element of the g[v] container, which likely
    // represents the adjacency list or set of child nodes for the vertex v in a graph.
    for (auto child : g[v])
    {
    // graph me ( first -> node ) & ( second-> weight )
    int child_v = child.first;
    int wt = child.second;
    if (distance + wt < dist[child_v])
    {
    st.erase({dist[child_v], child_v}); // Remove the old entry if present
    dist[child_v] = distance + wt;
    st.insert({dist[child_v], child_v});
    }
    }
    }
    }
    int main()
    {
    int n = 5; // Number of nodes in the graph
    int source = 1;
    vector dist(n + 1, INF); // Initialize dist vector with INF
    // Add edges to the graph
    g[1].push_back({2, 10});
    g[2].push_back({1, 10});
    g[1].push_back({4, 5});
    g[4].push_back({1, 5});
    g[2].push_back({3, 7});
    g[3].push_back({2, 7});
    g[3].push_back({4, 2});
    g[4].push_back({3, 2});
    g[4].push_back({5, 1});
    g[5].push_back({4, 1});
    dijkstra(source, dist);
    // Print the shortest distances from the source to all other nodes
    for (int i = 1; i

  • @nimeshsingh6229
    @nimeshsingh6229 3 роки тому +1

    💛💛💛💛💛💛💛💛💛💛💛💛💛

  • @bug143
    @bug143 5 місяців тому

    😊

  • @code7434
    @code7434 2 роки тому +2

    💛 => I have a suggestion, along with advanced graph algorithm video share 5 medium-hard quality problems links to practice.

  • @sahilanand30
    @sahilanand30 2 роки тому

    🔥

  • @surajtudu2548
    @surajtudu2548 2 роки тому

    💛 💛

  • @vaibhavpandey2286
    @vaibhavpandey2286 3 роки тому

    💛

  • @gauravjaiswal7407
    @gauravjaiswal7407 2 роки тому +1

    In Dijkstra's algorIn Dijkstra's algorithm, we didn't need this visited array as
    distances always increase.
    ie; the node which is taken out from priority Queue (visited) is been reached by the shortest possible path.
    And once taken out from priority queue, node attains its final key value.

  • @algotalk5368
    @algotalk5368 3 роки тому

    Opp

  • @ShubhamSingh-gk8vp
    @ShubhamSingh-gk8vp 3 роки тому

    💛💛💛💛

  • @vaibhavgupta6600
    @vaibhavgupta6600 3 роки тому

    ♥️

  • @radiant_harsh
    @radiant_harsh 3 роки тому

    🤗🤗

  • @funenjoynilaypatel4553
    @funenjoynilaypatel4553 2 роки тому +1

    11-aug 2022

  • @satanshuag
    @satanshuag 3 роки тому

  • @abhimannyumagar1033
    @abhimannyumagar1033 3 роки тому

    Greedy approach se hi hai na ?

  • @boomboom-9451
    @boomboom-9451 3 роки тому

    bro PLEASE turn on english subtitles for your videos PLEASE

  • @harry-cf4ii
    @harry-cf4ii 3 роки тому

    Bhaiya CP ka course kb tk khatam hojayega kya ap ek expected month bata skte hain??i mean 2022 mai konse month tk pura complete hojayega

    • @samagrapathak3854
      @samagrapathak3854 3 роки тому +4

      Bhai jitna luv sir ne padhya he abhi tak utne se hi codeforces pe expert ban sakte ho bus dp or ati ho to

    • @harry-cf4ii
      @harry-cf4ii 3 роки тому

      @@samagrapathak3854 thanks bro but tum bta skte ho kya aur kya kya topics bache hain Dp k alawa aur course kb tk end hojayega😊😊kyunki mere winter breaks aane wale hain to mai shuru krdoonga Cp

    • @samagrapathak3854
      @samagrapathak3854 3 роки тому +3

      @@harry-cf4ii bhai cp koi course nahi hoti jisko khatam kara ja sake cp is a sport isme parctice kar karke skill develop karni padthi he or practice se aage badte he isme itne topics bhot he beginner ke liye or thoda or karna he to dp me khud specialist tak poch gaya hu

    • @harry-cf4ii
      @harry-cf4ii 3 роки тому

      @@samagrapathak3854 kya mai love babbar bhaiya ka C++ DSA Course dekhke pura practise krke khatm krne k baad inn luv bhaiya k CP wale playlist ko shuru karu??ya fir directly idhar se hi shuru karu??am in 1st sem and dont know c of coding right now pls guide me bro😊😊😊

    • @samagrapathak3854
      @samagrapathak3854 3 роки тому

      @@harry-cf4ii yahi se srart karo or fir practice karo basic questions ki hackerrank pe jake or jo college me assignment questions mile wo

  • @samagrapathak3854
    @samagrapathak3854 3 роки тому

    yellow heart

  • @hemantsingh2331
    @hemantsingh2331 Рік тому

    💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛💛

  • @ankitxalxotoo5580
    @ankitxalxotoo5580 2 роки тому +1

    Giving wrong output in leetcode

  • @barboza7459
    @barboza7459 3 роки тому

    It's not daijakstra it's pronounced daikstra

  • @chiraggoyal9646
    @chiraggoyal9646 2 роки тому

    Thanx bhaiya

  • @p38_amankuldeep75
    @p38_amankuldeep75 2 роки тому

    💛💛💛💛💛💛💛

  • @subhasishpanda5390
    @subhasishpanda5390 3 роки тому

    💛

  • @md.hafizurrahman5436
    @md.hafizurrahman5436 Рік тому

    💕

  • @anubhavkumarrao3141
    @anubhavkumarrao3141 3 роки тому

    💛💛💛💛💛

  • @abcefg7045
    @abcefg7045 2 роки тому

    yellow heart

  • @cloudwallah
    @cloudwallah 3 місяці тому

    💛🌞⭐🟡🌝🍯

  • @imranurrahman
    @imranurrahman Рік тому

    💛💛💛💛💛💛

  • @kumarsunny4358
    @kumarsunny4358 3 роки тому

    💛💛

  • @yashkoolwal196
    @yashkoolwal196 3 роки тому

    💛💛💛💛

  • @bhavaygoyal1338
    @bhavaygoyal1338 3 роки тому

    💛

  • @ishaankaustav727
    @ishaankaustav727 3 роки тому

    💛💛💛💛

  • @pallabghosh3840
    @pallabghosh3840 2 роки тому

    💛💛💛💛

  • @algotalk5368
    @algotalk5368 3 роки тому

    🧡

  • @shivasaini4097
    @shivasaini4097 3 роки тому

    💛

  • @orion2843
    @orion2843 2 роки тому

    💛💛💛💛💛

  • @ALLinONE-o6p
    @ALLinONE-o6p 2 роки тому

    💛💛💛

  • @gladiatorx77
    @gladiatorx77 2 роки тому

    💛💛💛💛💛