- محدودیت زمان: ۳ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
حسنی برای این که در تابستان وقتش را تلف نکند به کسب و کار روی آورده و به تازگی بانکی به نام کناب تاسیس کرده است.
از آنجایی که دوست دارد شما نیز عضو کناب باشید به شما یک پروژه داده و خواسته تا همراهبانکی بنویسید که درخواستهای زیر را اجرا کند.
1 ip:username
این درخواست یعنی کاربری با نام کاربری username و آیپی ip به همراهبانک وصل شد و در صورتی که username معتبر نباشد باید عبارت invalid username
را چاپ کنید.
به یک نام کاربری معتبر میگوییم اگر فقط از حروف کوچک و بزرگ انگلیسی و اعداد تشکیل شده باشد.
برای مثال 1aAB2
معتبر است ولی ab*2
معتبر نیست.
2 ip:username:money
این درخواست یعنی کاربری با آیپی ip به حسابی با نام کاربری username به اندازه money پول ریخته است. در واقع باید از حساب ip به اندازه money کم کنید و به حساب username اضافه کنید.
3 ip
با داده شدن این درخواست مقدار پول داخل حساب فرد با آیپی ip را نمایش دهید.
(دقت کنید که پول هر فرد میتواند منفی هم بشود و هرکس در ابتدا ۰ واحد پول دارد)
ورودی
در اولین خط ورودی عدد $q$ که بیانگر تعداد درخواستها است به شما داده میشود و در $q$ خط بعد، در هر خط یک درخواست داده میشود.
در هر درخواست ابتدا type داده میشود که برابر یکی از اعداد ۱ یا ۲ یا ۳ است و اگر $type$ برابر با ۱ باشد در ادامه دو رشته ip و username به شما داده میشود که توسط کاراکتر :
از هم جدا شدهاند. اگر
$type$
مساوی ۲ باشد سه رشته ip و username و
money
داده میشود که با :
از هم جدا شدهاند و اگر هم $type$ مساوی ۳ باشد رشته ip داده میشود.
$$0 \le q,money \le 100\ 000$$
طول username و ip حداکثر ۱۵ است.
تضمین میشود که:
- یک کاربر دوبار به همراه بانک وصل نمیشود و آیپی و نام کاربری هیچ دو فردی یکسان نیست.
- در صورتی که نام کاربری معتبر نباشد تنها ممکن است کاراکترهای
_
یا*
یا#
یا$
در آن به کار رفته باشد. - همهی ورودیهای نوع ۲ و ۳ معتبر هستند؛ یعنی کاربری با آیپی یا نام کاربری مشخص شده، وجود دارد.
- همه ipها به صورت ۴ عدد بین ۰ تا ۲۵۵ هستند که با نقطه از هم جدا شدهاند.
- حداکثر پولی که یک نفر میتواند داشته باشد $10^9$ است.
خروجی
برای هر درخواست نوع ۱ در صورتی که username معتبر نیست باید عبارت invalid username
را چاپ کنید و برای هر درخواست نوع ۳ باید مقدار پول حساب فرد خواسته شده را چاپ کنید. (پاسخ هر درخواست را در یک خط جدید چاپ کنید.)
مثال
ورودی نمونه
9
1 46.51.16.72:SmsS
1 192.168.10.13:#hacker$user
1 131.41.61.213:faeila
2 46.51.16.72:faeila:1000
3 46.51.16.72
3 131.41.61.213
2 131.41.61.213:SmsS:500
3 46.51.16.72
3 131.41.61.213
خروجی نمونه
invalid username
-1000
1000
-500
500
ارسال پاسخ برای این سؤال