187052025-10-31 14:08:17Teret222Rozmárokcpp17Hibás válasz 10/10027ms1780 KiB
#include <vector>
#include <iostream>
using namespace std;
vector<int> read()
{
    int n;
    cin >> n;
    char k;
    vector<int> vec(n);
    for (int i = 0; i < n;i++)
    {
        cin >> k;
        if (k == '-')
        {
            vec[i] = 1;
        }
        else {
            vec[i] = 0;
        }
    }
    return vec;
}
void rozmar()
{
    int instances;
    cin >> instances;
    vector<int> answers(instances * 2);
    for (int j = 0; j < instances*2;j+=2)
    {
        int sec = 0, acts = 0,longestsect = 0,i = 0;
        vector<int> vec = read();
        for (int i = 0; i < vec.size();i++)
        {
            int sectionsize = 0;
            if (vec[i] == 0)
            {
                while (i < vec.size() && vec[i] == 0)
                {
                    sectionsize++;
                    i++;
                }
                acts++;
                if (longestsect < sectionsize)
                {
                    
                    if (sec == 0)
                    {
                        sec = sectionsize / 2 + 1;
                    }
                    else
                    {
                        sec -= longestsect / 2 + 1;
                        sec += sectionsize / 2 + 1;
                    }
                    longestsect = sectionsize;
                }
                else if (sectionsize == longestsect)
                {
                    sec++;
                }
                else if (sectionsize == 1)
                {
                    sec++;
                }
                // sec += sectionsize / 2 + 1;
                
            }

        }
        answers[j] = acts;
        answers[j + 1] = sec;
    }
    for (int i = 0; i < answers.size();i+=2)
    {
        cout << answers[i] << " " << answers[i + 1] << "\n";
    }
}
int main()
{
    rozmar();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask210/10
2Elfogadva21ms1524 KiB
3Elfogadva25ms500 KiB
subtask30/20
4Hibás válasz3ms316 KiB
subtask40/35
5Elfogadva1ms316 KiB
6Hibás válasz3ms512 KiB
7Elfogadva2ms316 KiB
8Hibás válasz3ms316 KiB
9Hibás válasz2ms384 KiB
10Elfogadva2ms316 KiB
11Elfogadva2ms316 KiB
subtask50/35
12Elfogadva1ms316 KiB
13Elfogadva21ms1524 KiB
14Elfogadva25ms500 KiB
15Hibás válasz3ms316 KiB
16Hibás válasz3ms512 KiB
17Elfogadva2ms316 KiB
18Hibás válasz3ms316 KiB
19Hibás válasz2ms384 KiB
20Elfogadva2ms316 KiB
21Elfogadva2ms316 KiB
22Hibás válasz27ms500 KiB
23Hibás válasz23ms1332 KiB
24Hibás válasz21ms1332 KiB
25Hibás válasz20ms1780 KiB
26Elfogadva20ms1332 KiB
27Hibás válasz21ms1332 KiB
28Elfogadva21ms1332 KiB