Skip to main content

[ UVa ] 10449 - Traffic

//-------------------------------
// Problem : 10449 - Traffic .
// Verdict : Accepted.
// Author : Mehadi Hasan Menon.
// Algorithm : Bellman Ford.
// Date : 06-18-16.
//-------------------------------
#include <iostream>
#include <cstdio>
using namespace std;
#define inf 100000007
#define mx 4007
#define pow(x) ((x) * (x) * (x))
int r, q, edge_cost, x, y, u, v;
int busyness[mx], edge_u[mx], edge_v[mx], costs_uv[mx];
int d[mx];
void bellman_ford(int n)
{
for(int i = 1; i <= n; i++) {
d[i] = inf;
scanf("%d", &busyness[i]);
}
scanf("%d", &r);
for(int i = 1; i <= r; i++)
{
scanf("%d %d", &x, &y);
edge_u[i] = x;
edge_v[i] = y;
edge_cost = pow(busyness[y] - busyness[x]);
costs_uv[i] = edge_cost;
}
d[1] = 0;
for(int k = 1; k <= n - 1; k++)
{
bool update = false;
for(int i = 1; i <= r; i++)
{
u = edge_u[i];
v = edge_v[i];
if(d[u] != inf && d[u] + costs_uv[i] < d[v])
{
update = true;
d[v] = d[u] + costs_uv[i];
}
}
if(update == false) {
break;
}
}
// if have any cycle then put those value to -inf;
for(int i = 1; i <= r; i++) // not fucking r++, it is i++
{
u = edge_u[i]; v = edge_v[i];
if(d[u] != inf && d[u] + costs_uv[i] < d[v]) {
d[v] = -inf;
}
}
}
int main()
{
freopen("10449.txt", "r+", stdin);
int n, tc, des;
tc = 1;
while(scanf("%d", &n) == 1)
{
bellman_ford(n);
printf("Set #%d\n", tc++);
scanf("%d", &q);
for(int i = 1; i <= q; i++)
{
scanf("%d", &des);
if(d[des] < 3 || d[des] == inf) {
printf("?\n");
}
else {
printf("%d\n", d[des]);
}
}
}
return 0;
}
view raw 10449.cpp hosted with ❤ by GitHub

Comments

Popular posts from this blog

উবুন্টুতে রুট পাসওয়ার্ড ভুলে তা রিকভার করার উপায় ।

যদি কেউ রুট পাসওয়ার্ড ভুলে যান তাহলে নিচের কাজ গুলো করে নতুন পাসওয়ার্ড সেট করতে পারবেন: প্রথমে পিসি রিস্টার্ট দিন । দিয়ে UP/DOWN করে kernel version সিলেক্ট করে e চাপুন । ব্ল্যাক Screen আসবে এবার একটা Space দিয়ে লিখুন “Single” [ Enter ] এরপর b চাপুন ফলাফল : লিনাক্সের Single user Mood এ চলে আসছেন । এখন লিখুন passwd root [ Enter ] এখন নতুন পাসওয়ার্ড খানা টাইপ করেন [ এন্টার ] আবার টাইপ করেন [ এন্টার ] কাজ শেষ , এবার reboot টাইপ করেন । এখন নতুন পাসওয়ার্ড দিয়ে লগইন করেন। পুনশ্চ : যদি আপনার উইন্ডোজ এর সাথে ডুয়েল বুট করা থাকে তবে এই প্রক্রিয়া কাজ করবে না ।

Fix The BIOS in this system is not fully ACPI compliant in Windows 7

এই সমস্যা সমাধান করার জন্য আপনি নিচের ধাপ গুলো অনুসরণ করুন। ধাপ ১ :  আপানর  কম্পিউটার এ উইন্ডোজ এর ডিস্ক থেকে বুট করুন । নীচের মত উইন্ডো আসলে Shift + F10 চাপুন । এর ফলে কমান্ড প্রম্প্ট ওপেন হবে। ধাপ ২ : এখন CMD তে নিচের কমান্ড গুলি ধারবাহিক ভাবে লিখুন C: bootrec /FixMbr bootrec /FixBoot bootrec /RebuildBcd exit  এখানে  C হলো যে ড্রাইভ এ উইন্ডোজ দেয়া আছে।  আপনার যদি অন্য কোনো ড্রাইভ ( D, E, F, ..... ) এ উইন্ডোজ দেয়া থাকে তবে আপনাকে C এর জায়গায় সেই ড্রাইভ এর নাম লিখতে হবে।  উপরের সব কমান্ড যদি সঠিক ভাবে বিল্ড হয় তবে আপনি আপনার কম্পিউটার রিস্টার্ট দিন।  দেখবেন আপনার সমস্যা সমাধান হয়ে গেছে :D