Advertisement
Nusrat_Ullah

Project to show distance between 2 place and Visiting places

Dec 1st, 2018
316
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.10 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. priority_queue<pair<int,int>,vector<pair<int,int>>>pq;
  4. int main()
  5. {
  6.     int g,e,s,la,d,u;
  7.     string f,l;
  8.     string dha="Sonargaon, Lalbagh Kella, Ahsan Monjil.";
  9.     string kum="Salbon Bihar, Dhormosagor, War Cemetery.";
  10.     string khu="Sundarban, Satgombuj Mosque.";
  11.     string shyl="Shahjalal Majar, Shahporan Majar, Jaflong.";
  12.     string chi="Sitakundo, Cox's Bazar, Saint Martin.";
  13.     vector<vector<pair<int,int>>>adlst(5+10);
  14.     adlst[0].push_back(make_pair(1,150));
  15.     adlst[0].push_back(make_pair(2,200));
  16.     adlst[0].push_back(make_pair(3,120));
  17.     adlst[1].push_back(make_pair(0,150));
  18.     adlst[1].push_back(make_pair(3,100));
  19.     adlst[2].push_back(make_pair(0,200));
  20.     adlst[3].push_back(make_pair(0,120));
  21.     adlst[3].push_back(make_pair(1,100));
  22.     adlst[3].push_back(make_pair(4,185));
  23.     adlst[4].push_back(make_pair(3,185));
  24.     printf("First enter from where : ");
  25.     cin>>f;
  26.     printf("Now to which place : ");
  27.     cin>>l;
  28.     if(f=="Dhaka")s=0;
  29.     else if(f=="Sylhet")s=1;
  30.     else if(f=="Khulna")s=2;
  31.     else if(f=="Kumilla")s=3;
  32.     else if(f=="Chittagong")s=4;
  33.     if(l=="Dhaka")la=0;
  34.     else if(l=="Sylhet")la=1;
  35.     else if(l=="Khulna")la=2;
  36.     else if(l=="Kumilla")la=3;
  37.     else if(l=="Chittagong")la=4;
  38.     vector<int>dist(1e2+1,1e9);
  39.     dist[s]=0;
  40.     pq.push(pair<int,int>(0,s));
  41.     while(!pq.empty()){
  42.         pair<int,int>fron=pq.top();
  43.         pq.pop();
  44.         d=fron.first;
  45.         u=fron.second;
  46.         if(d>dist[u])continue;
  47.         for(g=0;g<(int)adlst[u].size();g++){
  48.             pair<int,int>v=adlst[u][g];
  49.             if(dist[u]+v.second<dist[v.first]){
  50.                 dist[v.first]=dist[u]+v.second;
  51.                 pq.push(pair<int,int>(dist[v.first],v.first));
  52.             }
  53.         }
  54.     }
  55.     cout<<endl<<f<<" to "<<l;
  56.     printf(": %d KM\n\n",dist[la]);
  57.     printf("Visting Places : ");
  58.     if(la==0)cout<<dha<<endl;
  59.     else if(la==1)cout<<shyl<<endl;
  60.     else if(la==2)cout<<khu<<endl;
  61.     else if(la==3)cout<<kum<<endl;
  62.     else if(la==4)cout<<chi<<endl;
  63.     return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement