من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

پاسخ سوال چیهمونی؟ کوئرا

پاسخ سوال چیهمونی؟ کوئرا
پاسخ سوال چیهمونی؟ کوئرا

پاسخ سوال چیهمونی؟ کوئرا

در این نوشته تمرین “چیهمونی؟” که در وب‌سایت کوئرا موجود است را برای شما کاربران عزیز حل کرده‌ایم.

 

پاسخ سوال چیهمونی؟ کوئرا

علیش که دیگه از این زندگی خسته‌شده داره میره اونور و امشب گودبای پارتیشه. پاشا هم که علاقه زیادی به پیش‌خدمت بودن داره پیش‌خدمت دم دره و به علیش کمک می‌کنه. مهمونی ساعت 00:00 شروع میشه و تا ساعت 23:59 طول می‌کشه. وظیفه پاشا اینه که هر کسی که میاد تو مهمونی و یا بیرون می‌ره، رو یه تیکه کاغذ اول اسم اون نفرو، بعدش ساعت اون موقع و بعدش + یا - (که + یعنی اومده و - یعنی رفته) رو می‌نویسه و کاغذو می‌ندازه تو کیسه. علیش بعد این که مهمونی تموم‌شد به این فکر می‌کنه که تو چه زمانی مهمونی شلوغ‌ترین موقع ممکن بوده و چون وسط مهمونی حواسش به دور و برش نبوده این سوالو از پاشا می‌پرسه. پاشا هم که یه پیش‌خدمت سادست همه‌چی رو یادش رفته و فقط اطلاعات روی کاغذها رو داره. از طرفی اون نمی‌خواد علیش‌رو ناراحت کنه و از شما می‌خواد تا با گرفتن اطلاعات روی کاغذها بگید که تو چه زمانی مهمونی شلوغ‌ترین حالت رو داشته. (تعداد افرادی که در یک زمان در مهمانی هستند بعد از تمام داخل و خارج شدن‌ها در آن زمان حساب می‌شود.)

ورودی سوال چیهمونی؟

در خط اول تعداد تیکه کاغذها آمده سپس در  خط بعدی اسم و ساعت و یکی از کاراکترهای + یا - آمده‌ است.

  • فرمت تمام ساعت‌ها به‌شکل HH:MM است.
  • اسم رشته‌ای تشکیل‌شده از حروف کوچک انگلیسی است.
  • تضمین می‌شود جمع طول اسم‌ها حداکثر شود.
  • تضمین می‌شود اگر کسی وارد مهمانی شود، قبل از آن در مهمانی نبوده و اگر هم خارج‌شود قبل از آن در مهمانی بوده ‌است.

 

خروجی سوال چیهمونی؟

در تنها خط خروجی شلوغ‌ترین ساعت مهمونی رو با فرمت HH:MM چاپ‌کنید. در صورت وجود چندین جواب یکی ‌را به دلخواه چاپ کنید.

 

حل سوال چیهمونی؟

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int times[1440];
    for(int i=0; i<1440; i++)
    {
        times[i] = 0;
    }
    
    for(int i=0; i<n; i++)
    {
        string name;
        cin >> name;
        string time;
        cin >> time;
        int hour, min;
        hour = ((time[0]-'0')*10 )+ (time[1]-'0');
        min = ((time[3]-'0')*10 )+ (time[4]-'0');
        int minutes = hour*60 + min;
        string raftoamad;
        cin >> raftoamad;
        if(raftoamad == "+")
        {
            times[minutes] ++;
        }
        else
        {
            times[minutes] --;
        }
    }
    
    for(int i=1; i<1440; i++)
    {
        times[i] += times[i-1];
    }
    
    int max = -1;
    int maxIndex = -1;
    for(int i=0; i<1440; i++)
    {
        if(times[i] > max)
        {
            max = times[i];
            maxIndex = i;
        }
    }
    
    int h = maxIndex/60;
    int m = maxIndex%60;
    if(h < 10)
        cout << "0";
    cout << h << ":";
    if(m < 10)
        cout << "0";
    cout << m;
    
}

منبع سوال‌: وبسایت کوئرا

 

اگر روش حل بهتری برای “تمرین چیهمونی؟” دارید برای ما ارسال کنید تا با نام خودتان به اشتراک بگذاریم. اگر سوال خاصی را مدنظر دارید در بخش نظرات برای ما ارسال کنید تا حل آن سوال را در الویت محتوای سایت بگذاریم.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]