QOJ.ac

QOJ

Total points: 100 Output Only

#13207. رحلة بلا نهاية

Statistics

كان هناك طفل يُدعى Kino يحب السفر كثيرًا، وقد زار أماكن غريبة عديدة. وفي يوم من الأيام وصل إلى جسر، فوجد عليه سيارات مكشوفة كثيرة. ولسوء الحظ كان الجسر ضيقًا، لا يتسع عرضه إلا لسيارة واحدة، ولم تفسح السيارات الطريق لبعضها، فتكدست السيارات القادمة من الاتجاهين ولم يعد بإمكانها العبور.

لاحقًا أضاف البنّاء إلى الجسر ميزة جديدة: يمكن تدوير جزء منه بمقدار $180$ درجة، فتنعكس أوضاع السيارات المكشوفة الموجودة على ذلك الجزء، كما في الشكل التالي:

problem_13207_a17cdea731e86cfd2947c6c54d0f184b.png

الشكل 1. تصبح السيارات $3,2,1$ بالترتيب $1,2,3$ بعد التدوير.

كما يوضح الشكل، أدى التقاء السيارات $3,2,1$ بالسيارتين $4,5$ على الجسر إلى ازدحام مروري. يمكن حينئذ تدوير الجزء الذي يحمل $3,2,1$، فيصبح ترتيب السيارات على الجسر $1,2,3,4,5$، وتصبح اتجاهات سيرها متطابقة، فتستطيع مغادرة الجسر. هذا مجرد مثال بسيط؛ فالوضع على الجسر الحقيقي أعقد بكثير، ويحتاج إلى عمليات تدوير عديدة للوصول إلى ترتيب $1,2,3,4,5$.

لكن المصمم سافر هو الآخر بعد تصميم الجسر، ولم يكن أي من السكان الباقين يعرف كيف يشغّل هذا الجسر العجيب. لذلك ازدادت الفوضى عليه حتى وصل ذات يوم إلى وضعه الحالي. ولكي يعبر Kino الجسر، وجد بجانبه جهاز التحكم ودليل الاستعمال، واكتشف مجددًا طريقة تشغيله. وبمساعدة السكان المجاورين نجح في ترتيب السيارات المكشوفة على الجسر بالشكل $1,2,3,\ldots$، وجعل اتجاهاتها متطابقة. هل تعرف كيف فعل ذلك؟

الإدخال

هذه مسألة من نوع تسليم الإجابات فقط. وُضعت ملفات الإدخال من convertible1.in إلى convertible10.in في مجلد المستخدم. يحتوي السطر الأول من ملف الإدخال على عدد السيارات المكشوفة على الجسر $n$، وهي مرقمة $1,2,\ldots,n$. ويصف السطر الثاني مواقع السيارات واتجاهاتها بتسلسل من القيم $+i$ أو $-i$. وجود $-i$ في الموضع $j$ يعني أن السيارة $i$ موجودة في الموضع $j$ من الجسر وتتجه إلى اليمين؛ ووجود $+i$ في الموضع $j$ يعني أنها موجودة فيه وتتجه إلى اليسار.

الإخراج

عليك وضع ملفات الإخراج من convertible1.out إلى convertible10.out في مجلد المستخدم، ولا يلزم تسليم برنامج. يحتوي السطر الأول من ملف الإخراج على عدد عمليات التدوير $m$. ويصف كل من الأسطر $m$ التالية عملية تدوير واحدة، بذكر موضعي الحد الأيسر والحد الأيمن. يجب أن يضمن إخراجك أن يصبح التسلسل النهائي $1,2,3,\ldots,n$، وليس $-1,-2,-3,\ldots,-n$ أو أي تسلسل آخر.

أمثلة

الإدخال 1

5
-3 -2 -1 4 5

الإخراج 1

1
1 3

المهام الفرعية

الدرجة الكاملة لكل حالة اختبار هي $10$ نقاط، وتعتمد درجتك على نسبة جودة إجابتك إلى جودة الإجابة المرجعية.

كيفية اختبار برنامجك

تتوفر لهذه المسألة أداة فحص بيانات الإخراج convertible_c، وتُشغّل كما يلي:

#./convertible_c 3

وهذا يفحص ما إذا كان الملف convertible3.out صالحًا.


or upload files one by one:

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.