المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی انتخاب تیم:دوره ی ۱:سوال ۳

قالب‌دهی به متن

یک فایل متن (text) به عنوان ورودی داده شده است. خروجی برنامه‌ی شما فایل متن دیگری است که بر اساس قواعد زیر از روی ورودی ساخته می‌شود:

  • با توجه به مقادیر «فاصله از چپ» و «طول سطر»، سطرهای فایل خروجی تنظیم شود.
  • برای تنظیم طول سطر، مقدار فاصله‌ی اضافی بین کلمات حتی‌الامکان به طور مساوی تقسیم شود.
  • سطر خالی در فایل ورودی نشانه‌ی آغاز پارگراف جدید است.
  • هر پاراگراف در خروجی با یک سطر فاصله از پاراگراف قبلی و با تو رفتگی «فاصله‌ی آغاز پاراگراف» شروع می‌شود.
  • اگر در بین کلمه‌های ورودی بیش از یک فاصله‌ی متوالی وجود دارد، فاصله‌های اضافی حذف شود.
  • اگر در بین سطرهای ورودی بیش از یک سطر خالی متوالی وجود دارد، سطرهای خالی اضافی حذف شود.

ممکن است بعضی کلمات در ورودی از فرمول نشان داده شده در شکل زیر پیروی کند. این کلمه‌ها را «کلمه‌های رمز» می‌نامیم. (حروف بزرگ و کوچک را متمایز فرض کنید.) برای مثال cacalti یک کلمه‌ی رمز است.

  1. برنامه‌ای بنویسید که فایل متن ورودی را به خروجی تبدیل کند.
  2. برنامه‌ای بنویسید که علاوه بر فایل خروجی فایلی دیگر هم بسازدو کلمه‌های رمز موجود در ورودی را در آن بنویسد.

ابزار صفحه