ვორდულატორი

დროის ლიმიტი: 1 წმ

მეხსიერების ლიმიტი: 64 მეგაბაიტი

შემავალი მონაცემები: stdin

გამომავალი მონაცემები: stdout


ვორდულატორი არის გამარტივებული კომპიუტერი, რომელიც შედგება მონიტორისა და კლავიატურისაგან. მონიტორი შეიცავს ერთ ტექსტურ სტრიქონს და ერთ კურსორის სტრიქონს, რომელიც ზუსტად ტექსტური სტრიქონის ქვემოთაა განლაგებული. თითოეული სტრიქონის სიგრძე არის 40 პოზიცია. ტექსტური სტრიქონი შეიძლება შეიცავდეს მხოლოდ დიდ ლათინურ ასოებს და ჰარებს.  ტექსტური სტრიქონის ყოველი პოზიცია შეესაბამება კურსორის სტრიქონის ზუსტად ერთ პოზიციას და პირიქით. ყოველ მომენტში კურსორის სიმბოლო მდებარეობს კურსორის სტრიქონის ერთ პოზიციაში, ხოლო დანარჩენი 39 ცარიელია. თუ კურსორი არის პოზიციაში, რომელიც შეესაბამება ტექსტური სტრიქონის i-ურ პოზიციას, ამბობენ, რომ იგი არის i-ური სიმბოლოს ქვეშ. ტექსტი არ შეიძლება იყოს კურსორის სტრიქონში და კურსორი არ შეიძლება იყოს ტექსტურ სტრიქონში. მონიტორის მაგალითი:

HIDROELECTROSTACIJ

სიტყვა " HIDROELECTROSTACIJ" არის მონიტორის ტექსტურ სტრიქონში, ხოლო კურსორი მოთავსებულია მეოთხე სიმბოლოს ქვემოთ. ვორდულატორის კლავიატურა შედგება შემდეგი 29 ღილაკისაგან: 

< > - A B C D E F G
H I J K L M N O P Q
R S T U V W X Y Z  

ტექსტურ და კურსორის სტრიქონებში ცვლილებები შეიძლება მოხდეს მხოლოდ ვორდულატორის კლავიატურის რომელიმე ღილაკზე დაჭერის საშუალებით. ღილაკების შესაბამისი მოქმედებები მოცემულია შემდეგი ცხრილით: 

ღილაკი ოპერაციის სახელი ოპერაციის აღწერა
< კურსორი მარცხნივ  თუ კურსორი არის პირველი სიმბოლოს ქვეშ, მაშინ არაფერი იცვლება. სხვა შემთხვევაში კურსორი გადაადგილდება ერთი პოზიციით მარცხნივ. ამ ოპერაციის დროს ტექსტური სტრიქონის შემადგენლობა არ იცვლება. ოპერაციის შესრულების დროა 1წმ. 
> კურსორი მარჯვნივ  თუ კურსორი არის მე-40-ე სიმბოლოს ქვეშ, მაშინ არაფერი იცვლება. სხვა შემთხვევაში კურსორი გადაადგილდება ერთი პოზიციით მარჯვნივ. ამ ოპერაციის დროს ტექსტური სტრიქონის შემადგენლობა არ იცვლება. ოპერაციის შესრულების დროა 1წმ. 
- ტექსტური სტრიქონის იმ სიმბოლოს წაშლა, რომლის ქვეშაც კურსორია მოთავსებული თუ კურსორი მოთავსებულია არაა მე-40-ე სიმბოლოს ქვეშ, მაშინ ტექსტის ნაწილი, განლაგებული იმ სიმბოლოს მარჯვნივ, რომლის ქვეშაც კურსორია, გადაადგილდება ერთი პოზიციით მარცხნივ. მე-40-ე პოზიციაში გვექნება ცარიელი სიმბოლო. ოპერაციის დროს კურსორი ადგილზე რჩება. ოპერაციის შესრულების დროა 10წმ. 
A..Z შესაბამისი სიმბოლოს ჩამატება სტრიქონის იმ პოზიციაში, რომლის ქვეშაც კურსორია მოთავსებული თუ კურსორი მოთავსებულია არაა მე-40-ე სიმბოლოს ქვეშ, მაშინ ტექსტის ნაწილი, დაწყებული იმ სიმბოლოთი, რომლის ქვეშაც დგას კურსორი, გადაინაცვლებს ერთი პოზიციით მარჯვნივ (თუ ტექსტში გვაქვს ყველა 40 სიმბოლო, მაშინ ბოლო სიმბოლო გაქრება). ტექსტური სტრიქონის იმ პოზიციაში, რომლის ქვემოთაც კურსორია მოთავსებული, ჩაიწერება კლავიატურაზე აკრეფილი სიმბოლო. ოპერაციის შესრულები დროს კურსორი ადგილზე რჩება. ოპერაციის შესრულების დროა 10წმ. 

ვორდულატორის გამოყენების მაგალითი:

დავუშვათ მონიტორზე გვაქვს ასეთი მდგომარეობა: MAIJ

კლავიატურაზე “<” სიმბოლოს დაჭერით მონიტორზე გვექნება: MAIJ

კლავიატურაზე “>” სიმბოლოს დაჭერით მივიღებთ ისევ საწყის მდგომარეობას: MAIJ

კლავიატურაზე “-” სიმბოლოს დაჭერით მივიღებთ: MAI

კლავიატურაზე “G” სიმბოლოს დაჭერით მივიღებთ: MAGI

მარტივი გამოთვლები გვიჩვენებს, რომ ამ ოთხ ოპერაციას ვორდულატორი 22 წამს მოანდომებს. 

დაწერეთ პროგრამა, რომელიც ორი მოცემული სიტყვისათვის, რომლებიც შეიცავენ მხოლოდ დიდ ლათინურ ასოებს, განსაზღვრავს პირველი მათგანიდან მეორეს მისაღებად საჭირო უმცირეს შესაძლო დროს (წამებში) შესაბამის ოპერაციათა მიმდევრობის შესრულებით. დამატებით ცნობილია, რომ ა) პირველი სიტყვა მოცემულია ვორდულატორის ტექსტურ სტრიქონში, იწყება პირველი პოზიციიდან და კურსორი მდებარეობს პირველი სიმბოლოს ქვეშ; ბ) თითოეული სიტყვის სიგრძე არაა 20 სიმბოლოზე მეტი; გ) ოპერაციათა მიმდევრობის დასრულების შემდეგ კურსორი უნდა იდგეს პირველი სიმბოლოს ქვეშ; დ) პროგრამის გამომავალ მონაცემს უნდა ჰქონდეს შემდეგი სახე: <გამოთვლილი უმცირესი დრო> 

 




მაგალითები

შესატანი მონაცემები
ES TU დაკოპირება
გამოსატანი მონაცემები
40 დაკოპირება
შესატანი მონაცემები
PAKA PIKA დაკოპირება
გამოსატანი მონაცემები
22 დაკოპირება