.لینکهای مفید برای شرکت در مسابقه:
میتوانید سوالهای خود را از بخش "سوال بپرسید" مطرح کنید.
میخواهیم دستگاه خودپردازی را شبیهسازی کنیم که عملیات مختلف را پیشتیبانی میکند. توضیحات هر عملیات در قسمت مربوطه آمده است.
REGISTER
)
یک یوزر با نام USERNAME
در زمان TIMESTAMP
در خودپرداز ثبتنام میکند.
USERNAME
ثبتنام کرده باشد، پیغام Duplicate User!
چاپ شود.Registered Successfully
چاپ شود.DEPOSIT
)
مقدار AMOUNT
واحد پول در زمان TIMESTAMP
به حساب یوزر با نام USERNAME
اضافه میگردد.
USERNAME
وجود نداشت، پیغام No Such User Found!
چاپ شود.USERNAME
پس از افزایش موجودی چاپ شود.WITHDRAW
)
مقدار AMOUNT
واحد پول در زمان TIMESTAMP
از حساب یوزر با نام USERNAME
کم میگردد و به ازای آن، به اندازهی AMOUNT
واحد پول، از اسکناسهای داخل خودپرداز کم میشود.
USERNAME
وجود نداشت، پیغام No Such User Found!
چاپ شود.AMOUNT
بیش از ۲۰۰ واحد پول بود، پیغام Maximum Amount Exceeded!
چاپ شود.USERNAME
کمتر از مقدار AMOUNT
بود، پیغام Not Enough Fund!
چاپ شود.Not Enough Banknotes!
چاپ شود.USERNAME
پس از برداشت از حساب چاپ شود.TRANSFER
)
مقدار AMOUNT
واحد پول در زمان TIMESTAMP
از حساب یوزر با نام SENDER_USERNAME
کم میگردد و دقیقاً یک ساعت پس از آن به حساب یوزر با نام RECEIVER_USERNAME
واریز میگردد.
TIMESTAMP
، یوزری با نام SENDER_USERNAME
و یا همچنین یوزری با نام RECEIVER_USERNAME
وجود نداشت، پیغام No Such User Found!
چاپ شود.AMOUNT
بیش از ۳۰۰۰ واحد پول بود، پیغام Maximum Amount Exceeded!
چاپ شود.SENDER_USERNAME
کمتر از AMOUNT
واحد پول بود، پیغام Not Enough Fund!
چاپ شود.SENDER_USERNAME
پس از انتقال موجودی چاپ شود.GET_BALANCE
)
در زمان TIMESTAMP
، موجودی حساب یوزر با نام USERNAME
را چاپ میکند و مقدار ۱۰ واحد پول از آن حساب کم میکند.
TIMESTAMP
، یوزری با نام USERNAME
وجود نداشت، پیغام No Such User Found!
چاپ شود.USERNAME
در هنگام اجرای عملیات کمتر از ۱۰ واحد پول بود، پیغام Not Enough Fund!
چاپ شود.USERNAME
پس از کم شدن ۱۰ واحد پول چاپ شود.ADD_BANKNOTE
)
در زمان TIMESTAMP
، به تعداد AMOUNT
اسکناس، هر یک به ارزش VALUE
به اسکناسهای داخل خودپرداز اضافه میگردد.
تضمین میشود مقدار VALUE
یکی از مقادیر ۱، ۵، ۱۰، ۵۰ و یا ۱۰۰ است.
DEPOSIT
، چیزی به اسکناسهای داخل دستگاه اضافه نمیشود.WITHDRAW
، دستگاه خودپرداز در صورت پرداخت اسکناس، کمترین تعداد اسکناس را تحویل میدهد.TIMESTAMP
ها به شکل YYYY/MM/DD-hh:mm:ss
است که در آن YYYY
، MM
، DD
، hh
، mm
و ss
به ترتیب نشاندهندهی سال، ماه، روز، ساعت، دقیقه و ثانیهی عملیات است. همچنین تمامی TIMESTAMP
ها مقداری معتبر دارند.USERNAME
ها، تنها شامل حروف کوچک انگلیسی و به طول حداکثر ۱۰ هستند.محدودیتها | نمره |
---|---|
در دستورات داده شده، تنها دستور REGISTER و DEPOSIT موجود است و همچنین، ترتیب TIMESTAMP ها در دستورات به صورت صعودی است (دستورات به ترتیب ورودی اجرا میشوند). |
۳۰ |
دستور WITHDRAW و ADD_BANKNOTE در لیست دستورات وجود ندارد. |
۹۰ |
دستور TRANSFER در لیست دستورات وجود ندارد. |
۹۰ |
بدون محدودیت | ۹۰ |
ورودی شامل حداکثر ۲۰۰ خط است. در خط اول، عدد آمده است که نشاندهندهی تعداد دستورات داده شده است. سپس در خط بعدی، در هر خط، یکی از دستورات معتبر آمده است.
تضمین میشود فرمت ورودی دستورات، مانند فرمت گفته شده است و همچنین هیچ دو عملیاتی TIMESTAMP
یکسان ندارند. (از جمله واریز به حساب در عملیات TRANSFER
)
به ازای هر دستور داده شده در ورودی، خروجی مناسب به آن را به ترتیب و در یک خط جداگانه چاپ کنید.