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

پاسخ سوال کاغذ کادو چهارضلعی + کوئرا
پاسخ سوال کاغذ کادو چهارضلعی + کوئرا

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

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

 

 

در مورد سایت کوئرا بیشتر بخوانید…

 

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

علیش که دیگه از این زندگی خسته‌شده داره میره اونور و امشب گودبای پارتیشه. پاشا هم که علاقه زیادی به پیش‌خدمت بودن داره پیش‌خدمت دم دره و به علیش کمک می‌کنه. مهمونی ساعت 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]