भी समस्या http://www.spoj.com/problems/TOPOSORT/ है उत्पादन प्रारूप विशेष रूप से महत्वपूर्ण है के रूप में:मेरा तर्क SPOJ TOPOSORT के लिए सही तरीके से क्यों काम नहीं कर रहा है?
Print "Sandro fails." if Sandro cannot complete all his duties on the list.
If there is a solution print the correct ordering,
the jobs to be done separated by a whitespace.
If there are multiple solutions print the one, whose first number is smallest,
if there are still multiple solutions, print the one whose second number is smallest, and so on.
क्या मैं कर रहा हूँ बस किनारों यानी नौकरी बी से पहले काम एक खत्म करता है, तो पीछे से DFS कर रही है, वहाँ एक निर्देशित किनारे से है बी से ए। मैं बनाई गई आसन्नता सूची को सॉर्ट करके ऑर्डर को बनाए रख रहा हूं और उन नोड्स को संग्रहीत कर रहा हूं जिनके पास अलग-अलग बाधाएं नहीं हैं ताकि उन्हें बाद में सही क्रम में प्रिंट किया जा सके। दो फ्लैग सरणी उपयोग की जाती हैं, एक खोजी गई नोड को चिह्नित करने के लिए और एक नोड को चिह्नित करने के लिए, जिसके सभी पड़ोसियों की खोज की गई है।
अब मेरा समाधान http://www.ideone.com/QCUmKY (महत्वपूर्ण कार्य विज़िट फ़ंक्शन है) और 10 मामलों के लिए सही चलने के बाद डब्ल्यूए देने के लिए यह वास्तव में मुश्किल है कि मैं यह कहां गलत कर रहा हूं क्योंकि यह सभी परीक्षण मामलों के लिए चलता है जो मैंने हाथ से किया है।
DFS संस्थानिक तरह बार यहाँ से बाहर। मैंने एक बहुत ही अनुकूलित संस्करण लिखा है, यह अभी भी समय समाप्त हो गया है। अगर आपके पास अधिक अनुकूलन के लिए सुझाव हैं तो टिप्पणी करें। लेकिन आपको शायद एल्गोरिदम @templatetypedef सुझावों का उपयोग करने की आवश्यकता होगी। मेरा कोड: http://ideone.com/M3A3x3 – sukunrt