187112025-10-31 17:25:26kosztolnirekaRozmárokcpp17Hibás válasz 0/100148ms9496 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] == '.')
                {
                    idok.clear();

                    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;



                    /*int szam = j + mennyi - 1;
                    if (mennyi % 2 == 1) {
                        ido = (mennyi + 1) / 2;
                    }
                    else
                    {
                        ido = (mennyi / 2) + 1;
                    }
                    idok.push_back(ido);*/

                }
            }

            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álasz20ms564 KiB
3Hibás válasz48ms1064 KiB
subtask30/20
4Hibás válasz10ms564 KiB
subtask40/35
5Hibás válasz1ms500 KiB
6Hibás válasz7ms568 KiB
7Hibás válasz10ms820 KiB
8Hibás válasz6ms564 KiB
9Hibás válasz3ms320 KiB
10Hibás válasz2ms404 KiB
11Hibás válasz2ms316 KiB
subtask50/35
12Hibás válasz1ms500 KiB
13Hibás válasz20ms564 KiB
14Hibás válasz48ms1064 KiB
15Hibás válasz10ms564 KiB
16Hibás válasz7ms568 KiB
17Hibás válasz10ms820 KiB
18Hibás válasz6ms564 KiB
19Hibás válasz3ms320 KiB
20Hibás válasz2ms404 KiB
21Hibás válasz2ms316 KiB
22Hibás válasz119ms4916 KiB
23Hibás válasz103ms6196 KiB
24Hibás válasz37ms1584 KiB
25Hibás válasz23ms704 KiB
26Hibás válasz19ms564 KiB
27Hibás válasz83ms5064 KiB
28Hibás válasz148ms9496 KiB