187092025-10-31 15:59:40kosztolnirekaRozmárokcpp17Hibás válasz 0/100495ms10160 KiB
#include <iostream>
#include <vector>
using namespace std;

int main()
{
    /*int N, K, M;
    cin >> N;
    cin >> K;
    cin >> M;
    bool result;
    if (N * K >= M)
    {
        cout << "YES";
    }
    else {
        cout << "NO";
    }*/

    int db;
    int N;
    cin >> N;
    int meddig;
    vector<int> idok;
    for (int i = 0; i < N; i++)
    {
        int res1 = 0;
        int res2 = 0;
        int db = 0;
        int M;
        cin >> M;
        vector<char>list(M);
        for (int i = 0; i < M; i++)
        {
            cin >> list[i];
        }
        if (list[0] == '.')
        {
            res1 = 1;
        }
        for (int j = 0; j < list.size(); j++)
        {

            if (list[j] == '-')
            {
                if (j + 1 < list.size())
                {
                    if (list[j + 1] == '.')
                    {
                        res1++;
                    }
                }
            }
        }


        if (res1 == 0)
        {
            res2 = 0;
        }
        else
        {
            int ido = 0;
            res2 = res1;
            for (int j = 0; j < list.size(); j++)
            {
                if (list[j] == '.')
                {

                    ido = 0;
                    meddig = j;

                    while (meddig < list.size() && list[meddig] == '.')
                    {
                        meddig++;
                    }


                    int mennyi = meddig - (j);
                    cout << "j: " << j << "\n";
                    cout << "mennyi: " << mennyi << "\n";
                    //list[(j + mennyi - 1) / 2] = '-';

                    if (mennyi != 1)
                    {
                        db++;
                    }

                    int resj = j;
                    cout << "resj: " << resj << "\n";

                    int resmeddig = resj + mennyi - 1;
                    cout << "resmeddig: " << resmeddig << "\n";


                    int resmost = resj + mennyi / 2;
                    cout << "resmost: " << resmost << "\n";


                    if (resmost - resj > resmeddig - resmost)
                    {
                        ido = resmost - resj + 1;
                    }
                    else
                    {
                        ido = resmeddig - resmost + 1;
                    }


                    idok.push_back(ido);
                    cout << "ido: " << ido << "\n";
                    cout << "\n";

                    j = meddig;

                }
            }

            res2 = idok[0];
            for (int k = 1; k < idok.size(); k++)
            {
                if (idok[k] > res2)
                {
                    res2 = idok[k];
                }
            }
            //res2 += db - 1;
            if (res2 < res1)
            {
                res2 = res1;
            }
            else
            {
                /*cout << "db: " << db << "\n";
                cout << "res2: " << res2 << "\n";*/
                if (db < 0)
                {
                    res2 += db - 1;
                }
            }
        }



        cout << res1 << ' ' << res2 << "\n";
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz1ms316 KiB
subtask20/10
2Hibás válasz19ms564 KiB
3Hibás válasz96ms1076 KiB
subtask30/20
4Hibás válasz16ms564 KiB
subtask40/35
5Hibás válasz1ms316 KiB
6Hibás válasz7ms580 KiB
7Hibás válasz10ms820 KiB
8Hibás válasz6ms564 KiB
9Hibás válasz4ms508 KiB
10Hibás válasz2ms328 KiB
11Hibás válasz2ms384 KiB
subtask50/35
12Hibás válasz1ms316 KiB
13Hibás válasz19ms564 KiB
14Hibás válasz96ms1076 KiB
15Hibás válasz16ms564 KiB
16Hibás válasz7ms580 KiB
17Hibás válasz10ms820 KiB
18Hibás válasz6ms564 KiB
19Hibás válasz4ms508 KiB
20Hibás válasz2ms328 KiB
21Hibás válasz2ms384 KiB
22Hibás válasz495ms5288 KiB
23Hibás válasz101ms6532 KiB
24Hibás válasz37ms1844 KiB
25Hibás válasz21ms712 KiB
26Hibás válasz19ms704 KiB
27Hibás válasz83ms5296 KiB
28Hibás válasz149ms10160 KiB