diff --git a/Assignment Solutions/210944_SAUMYA_A1.pdf b/Assignment Solutions/210944_SAUMYA_A1.pdf new file mode 100644 index 0000000..8fdef43 Binary files /dev/null and b/Assignment Solutions/210944_SAUMYA_A1.pdf differ diff --git a/Programming Task Solutions/Flight Discount.cpp b/Programming Task Solutions/Flight Discount.cpp new file mode 100644 index 0000000..62f51aa --- /dev/null +++ b/Programming Task Solutions/Flight Discount.cpp @@ -0,0 +1,73 @@ +#include +using namespace std; + +#define int long long int + +int djikstramodified(int n, int m, unordered_map>> &adjList){ + if(n==1) return 0; + vectordist(n+1,LLONG_MAX); + vectordisc(n+1,LLONG_MAX); + priority_queue>,vector>>,greater>>>pq; + pq.push({0,{1,0}}); dist[1]=0; + while(!pq.empty()){ + int d = pq.top().first; + int node = pq.top().second.first; + bool couponUsed = pq.top().second.second; + pq.pop(); + if(couponUsed==0){ + if(dist[node]>n>>m; + unordered_map>> adjList; + for(int i=0; i>u>>v>>d; + adjList[u].push_back({v,d}); + } + cout< +using namespace std; + +#define int long long + +void solve(){ + int n, m, k; + cin>>n>>m>>k; + vector>dist(n+1); + unordered_map>>adjList; + for(int i=0;i>u>>v>>d; + adjList[u].push_back({v,d}); + } + + priority_queue,vector>,greater>>pq; + pq.push({0,1}); dist[1].push(0); + while(!pq.empty()){ + int d = pq.top().first; + int node = pq.top().second; + pq.pop(); + if(d>dist[node].top()) continue; + for(auto i:adjList[node]){ + if(dist[i.first].size()ans; + while(!dist[n].empty()){ + ans.push_back(dist[n].top()); + dist[n].pop(); + } + reverse(ans.begin(),ans.end()); + for(int i=0; i +using namespace std; + +#define int long long + +void solve(){ + int n; int m; + cin>>n>>m; + unordered_map>> adjList; + for(int i=0; i>u>>v>>d; + adjList[u].push_back({v,d}); + } + vectordist(n+1,LLONG_MAX); + priority_queue,vector>,greater>>pq; + pq.push({0,1}); dist[1]=0; + while(!pq.empty()){ + int d = pq.top().first; + int node = pq.top().second; + pq.pop(); + if(dist[node](d+i.second)){ + dist[i.first]=d+i.second; + pq.push({dist[i.first],i.first}); + } + } + } + for(int i=1;i<=n;i++){ + cout< +using namespace std; + +#define int long long int + +void solve(){ + int n, m, q; + cin>>n>>m>>q; + vector>dist(n+1,vector(n+1,1e13)); + for(int i=0;i>u>>v>>d; + dist[u][v]=min(d,dist[u][v]); + dist[v][u]=min(d,dist[v][u]); + } + for(int i=1;i<=n;i++){ + dist[i][i]=0; + } + + for(int k=1; k<=n; k++){ + for(int i=1;i<=n;i++){ + for(int j=1;j<=n;j++){ + if(i==k||j==k || i==j) continue; + if(dist[i][k]==1e13 || dist[k][j]==1e13) continue; + dist[i][j]=min(dist[i][j],dist[i][k]+dist[k][j]); + } + } + } + + for(int i=0;i>u>>v; + if(dist[u][v]==1e13){ + cout<<-1<<"\n"; + } + else{ + cout<