একটি প্রতিনির্দেশিত গ্রাফ গঠন করতে হবে যেখানে NN সংখ্যক শহর (নোড) থাকবে এবং uu শহর থেকে vv শহরের দিকে রাস্তা (এজ) থাকবে, যদি diff[u]>diff[v]diff[u] > diff[v] হয় ও শহর uu ও শহর vv এর মধ্যে রাস্তা থাকে। রাস্তার ওজন হবে রাস্তা অতিক্রমের সময়ের সমান।

প্রথম Subtask এর জন্য
আমরা Dijkstra's Algorithm ব্যবহার করতে পারি XX শহর থেকে YY শহরে যাওয়ার সর্বনিম্ন সময় বের করতে। এক্ষেত্রে আমরা কোনো বাঁধার সম্মুখীন হবো না, কারণ আমাদের গ্রাফে এরকম কোনো রাস্তা-ই থাকবে না।
Complexity: O(L(Vlog(V)+E))O(L(V\log(V)+E))

দ্বিতীয় Subtask এর জন্য
গঠিত গ্রাফটিতে কোনো চক্রাকার পথ নেই, কারণ শহরের কাঠিন্যের ভিত্তিতে আমরা একটি বড় থেকে ছোট টপোলজিকাল ক্রম দাড় করাতে পারি। এই ক্রম Depth-First Search (DFS) দিয়ে খুঁজে বের করতে হবে। তারপর এই ক্রমে প্রতিটি শহরের জন্য বহির্গামী রাস্তাগুলো রিল্যাক্স করলে সর্বনিম্ন সময়ের পথ খুঁজে পাওয়া যাবে।
Complexity: O(L(V+E))O(L(V+E))

মনে রাখতে হবে, XX শহর ও YY শহর রাস্তা দিয়ে সংযুক্ত থাকলেও তাদের মধ্যে পথ খুঁজে নাও পাওয়া যেতে পারে।

Statistics

58% Solution Ratio
jamil314Earliest, Jun '21
mbsabbirr127Fastest, 0.1s
sakib.17442Lightest, 6.9 MB
Deshi_TouristShortest, 982B
Toph uses cookies. By continuing you agree to our Cookie Policy.