Skip to main content

[ UVa ] 10305 - Ordering Tasks

//--------------------------------------------------
// Problem : 10305 - Ordering Tasks.
// Verdict : Accepted.
// Write : Mehadi Hasan Menon.
// Algorithm : DFS, Topological Sort.
// Date : 15.04.16, Time : 0.00 ms.
//------------------------------------------------
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdio>
using namespace std;
const int max_size = 105;
vector <int> edge[max_size];
bool is_visited[max_size] = {false}; // default false;
vector <int> top_list;
void topological_sort_using_DFS(int node)
{
is_visited[node] = true;
int child;
for(int i = 0; i < edge[node].size(); i++)
{
child = edge[node][i];
if(is_visited[child] == false)
{
topological_sort_using_DFS(child);
}
}
top_list.push_back(node);
}
int main()
{
freopen("10305.txt", "r+", stdin);
int n, m; // m is the precedence relations
while(cin >> n >> m)
{
if(n == 0 && m == 0) {
break;
}
int i, j;
for(int r = 0; r < m; r++)
{
cin >> i >> j;
edge[i].push_back(j);
}
// TRICK ..
// The whole graph may not be connected on a single node
// this why we have to check each graph separately :)
for(int r = 1; r <= n; r++)
{
if(is_visited[r] == false)
{
topological_sort_using_DFS(r);
}
}
reverse(top_list.begin(), top_list.end());
for(int i = 0; i < top_list.size(); i++)
{
if(i > 0) // skip last space.
{
printf(" ");
}
cout << top_list[i];
}
printf("\n");
// reset everything :)
top_list.clear();
for(int i = 0; i <= n; i++)
{
is_visited[i] = false;
edge[i].clear();
}
}
return 0;
}
view raw 10305.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