همواره در مسابقاتی که توسط مجموعه کوئرا برگزار میشوند، تعدادی از کاربران به منظور فعالیتهای توطئهگرانه، تقلب و بر هم زدن نظم مسابقات، رفتارهای عجیبی انجام میدهند! برخی از آنها با ساخت چنین حسابکاربری در کوئرا با یک نام یکسان و یا شرکت در چند مسابقه به صورت همزمان، دست به توطئهگری در کوئرا میزنند...
ایرادگیر سری جدید کداستار، آقای هاشیمی (MR. Hashimi) از مشروطهچیان و توطئهگران مجموعه میهمن، برای برگزاری این سری مسابقات از کوئرا درخواستهای عجیبی دارد. از درخواستهای عجیب او برگزاری مسابقات مهندسی نرمافزار و فرانتاند در یک زمان به صورت مشترک بود. از نظر آقای هاشیمی برگزاری مسابقات مهندسی نرمافزار و فرانتاند در یک زمان میتواند به شناسایی متقلبان مسابقات کمک بسیاری کند.

او از کوئرا میخواهد تا پس از برگزاری این دو مسابقه و خروجی گرفتن نتایج مسابقه مهندسی نرمافزار در فایل software.csv و نتایج مسابقه فرانتاند در فایل front.csv ، آنها را تشابهسنجی ابلفضلی کند! به مثال زیر از فایل نتایج این دو مسابقه توجه کنید:
Ali Pishgrad,99
Sara Momeni,50
Zahra Ahmadi,80
Zahra Ahmadi,70
Zahra Ahmadi,90
- فایل نتایج مسابقات کوئرا، به صورت فایلهایی با پسوند
.csvمیباشد که هر سطر آن به ترتیب شامل نام و رتبه فرد شرکتکننده هستند.
تشابهسنج ابلفضلی کوئرا با بررسی هر کدام از فایلهای نتایج، یعنی front.csv و software.csv، ابتدا سطرهایی از نتایج که نام افراد شرکتکننده آنها تکرار شده است را شناسایی کرده و صرفا نتیجهای را نگهداری کند که رتبه بهتری را در مسابقه کسب کرده است! این تشابهسنجی در هر کدام از فایلها باعث میشود تا در نهایت نام و رتبه تمام شرکتکنندگان متمایز گردد.
سپس این تشابهسنج باید با بررسی نام شرکتکنندهها در هر دو فایل front.csv و software.csv در صورتی که نامی را مشاهده کند که در هر دو مسابقه شرکت کرده است، از آنجایی که هر دو مسابقه در یک زمان برگزار شدهاند و یک فرد نمیتواند به صورت همزمان در هر دوی آنها شرکت کند، آن فرد باید به عنوان متقلب شناسایی شده و در سمت راست نامش یک * برای نشان دادن متقلب بودن فرد قرار گیرد.
در نهایت نتایج هر کدام از مسابقات مهندسی نرمافزار و فرانتاند باید بر اساس رتبه به صورت صعودی مرتبسازی شوند تا آقای هاشیمی بتواند تصمیمگیری درستی در مورد پذیرش افراد در بوتکمپهای کداستار انجام دهد. از آنجایی که همه در کوئرا سخت مشغول برگزاری مجموعه مسابقات کداستار هستند، مسئولیت نوشتن بش اسکریپت تشابهسنج ابلفضلی کوئرا در این سوال به شما واگذار شده است!
ورودی اسکریپت
ورودی اسکریپت، دو فایل software.csv و front.csv است که هر کدام شامل تعدادی سطر به ترتیب شامل نام و رتبه فرد شرکتکننده میباشند، که با , از هم جدا شدهاند. ممکن است برخی از نامها در فایلهای ورودی تکراری باشند که باید توسط تشابهسنج ابلفضلی شناسایی شوند. همچنین تضمین میشود که تمامی رتبههای مسابقات متمایز هستند و رتبه تکراری در نتایج وجود ندارد.
توجه داشته باشید که سیستم داوری محتویات فایل front.csvو software.csv را به صورت جدا با استریم ریدایرکشن و یا پایپلاین کردن به اسکریپت شما ورودی نمیدهد و اسکریپت نوشته شده در فایل solution.sh خود به تنهایی قرار است تا خواندن از فایل front.csvو software.csv و نمایش خروجی را انجام دهد.
خروجی اسکریپت
فایل solution.sh شما توسط سیستم داوری اجرا شده و با خواندن فایلهای software.csv و front.csv و تشابهسنجی ابلفضلی و انجام پردازش بر روی آن باید هر کدام از نتایج را به صورت گفته شده (به صورت نتایج متمایز و صعودی بر اساس رتبه که افراد متقلب در آنها شناسایی شدهاند) دوباره در هر کدام از همان فایلها ذخیرهسازی کند. توجه داشته باشید که سیستم داوری نسبت به بزرگی و کوچکی حروف نام افراد شرکتکننده، موقعیت قرارگیری علامت * برای افراد متقلب و نبود فاصلههای اضافهتر در فایلهای پردازش شده و نهایی software.csv و front.csv حساس است.
مثال
ورودی نمونه ۱
Ali Pishgrad,99
Sara Momeni,50
Mohammad Rezaei,40
Zahra Ahmadi,70
خروجی نمونه ۱
Sara Momeni,50
Ali Pishgrad,99
Mohammad Rezaei,40
Zahra Ahmadi,70
- خروجیهای بالا، یک نمونه از فایلهای
front.csvوsoftware.csvمیباشند. این دو فایل پس از انجام تشابهسنجی ابلفضلی و مرتبسازی به صورت بالا تبدیل شدهاند. توجه داشته باشید که از آنجایی که نام هیچ فردی در هر دو فایل نتیجه مسابقات مهندسی نرمافزار و فرانتاند نبوده است، فردی به عنوان متقلب شناسایی نشده است.
ورودی نمونه ۲
Zahra Ahmadi,80
Zahra Ahmadi,70
Zahra Ahmadi,90
Zahra Ahmadi,85
خروجی نمونه ۲
Zahra Ahmadi*,70
Zahra Ahmadi*,85
- خروجیهای بالا، یک نمونه از فایلهای
front.csvوsoftware.csvمیباشند. این دو فایل پس از انجام تشابهسنجی ابلفضلی و مرتبسازی به صورت بالا تبدیل شدهاند. فایلfront.csvپس از تشابهسنجی، از آنجایی که سه شرکتکننده با نامهای یکسانZahra Ahmadiدارد، تنها بهترین نتیجه برای این نام که رتبه ۷۰ میباشد باقی مانده و سایر نتایج از فایلfront.csvحذف شدهاند. همچنین از آنجایی که این نام علاوه بر فایلfront.csvدر فایلsoftware.csvنیز دیده شده و این فرد در هر دو مسابقه که به صورت همزمان برگزار شدهاند، شرکت کرده است، پس او به عنوان فرد متقلب، شناسایی شده و کنار نامش پس از تشابهسنجی ابلفضلی علامت*قرار گرفته است. آقای هاشیمی او را از شرکت در بوتکمپهای کداستار منع خواهد کرد!
آنچه باید آپلود کنید
-
توجه: شما باید موارد خواسته شده در سوال را تنها در قالب فایل
solution.shپیادهسازی کرده و ارسال کنید. -
توجه: خروجی پاسخ شما باید عینا مطابق عبارت خواسته شده باشد (یعنی از لحاظ بزرگی و کوچکی حروف و علائم نگارشی و موقعیت قرار گیری
*در کنار نام باید بدون تغییرات اضافی باشد) -
توجه: فایل
solution.shتوسط سیستم داوری اجرا میشود و نیازی به نوشتن دستور یا اسکریپت دیگری برای اجرای این فایل نیست. -
توجه: نتایج پس از تشابهسنجی ابلفضلی باید در همان فایلهای
front.csvوsoftware.csvبازنویسی شوند. -
توجه: سیستم داوری محتویات فایل
front.csvوsoftware.csvرا به صورت جدا با استریم ریدایرکشن و یا پایپلاین کردن به اسکریپت شما ورودی نمیدهد و اسکریپت نوشته شده در فایلsolution.shخود به تنهایی قرار است تا خواندن از فایلfront.csvوsoftware.csvو نمایش خروجی را انجام دهد.
ارسال پاسخ برای این سؤال