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

او از **کوئرا** میخواهد تا پس از برگزاری این دو مسابقه و خروجی گرفتن نتایج **مسابقه مهندسی نرمافزار** در **فایل** `software.csv` و نتایج **مسابقه فرانتاند** در **فایل** `front.csv` ، آنها را **تشابهسنجی ابلفضلی** کند! به مثال زیر از **فایل نتایج** این دو مسابقه توجه کنید:
```csv front.csv csv
Ali Pishgrad,99
Sara Momeni,50
```
```csv software.csv
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` **حساس** است.
# مثال
## ورودی نمونه ۱
```csv front.csv csv
Ali Pishgrad,99
Sara Momeni,50
```
```csv software.csv
Mohammad Rezaei,40
Zahra Ahmadi,70
```
## خروجی نمونه ۱
```csv front.csv csv
Sara Momeni,50
Ali Pishgrad,99
```
```csv software.csv
Mohammad Rezaei,40
Zahra Ahmadi,70
```
- **خروجیهای** بالا، یک نمونه از **فایلهای** `front.csv` و `software.csv` میباشند. این **دو فایل** پس از انجام **تشابهسنجی ابلفضلی** و **مرتبسازی** به صورت بالا تبدیل شدهاند. **توجه داشته باشید** که از آنجایی که **نام هیچ فردی** در **هر دو فایل** نتیجه مسابقات مهندسی نرمافزار و فرانتاند **نبوده است**، فردی **به عنوان متقلب شناسایی نشده است.**
## ورودی نمونه ۲
```csv front.csv csv
Zahra Ahmadi,80
Zahra Ahmadi,70
Zahra Ahmadi,90
```
```csv software.csv
Zahra Ahmadi,85
```
## خروجی نمونه ۲
```csv front.csv csv
Zahra Ahmadi*,70
```
```csv software.csv
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` و **نمایش خروجی** را انجام دهد.
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.