| 18713 | 2025-10-31 17:52:38 | kosztolnireka | Rozmárok | cpp17 | Wrong answer 0/100 | 43ms | 792 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;
//cout << "res2: " << res2 << "\n";
//cout << "res1: " << res1 << "\n";
if (res2 < res1)
{
res2 = res1;
}
if (list[list.size() - 1] == '.' && list[list.size() - 2] == '.' /*&& list[list.size() - 3] == '-'*/)
{
//cout << "true";
res2 += 1;
}
//else
//{
// //cout << "db: " << db << "\n";
// //cout << "res2: " << res2 << "\n";
// /*if (db > 0)
// {
// res2 += db - 1;
// }*/
// if (list[list.size() - 1] == '.' && list[list.size() - 2] == '.' && list[list.size() - 3] == '-')
// {
// cout << "true";
// res2 += 1;
// }
// cout << "false";
//}
}
cout << res1 << ' ' << res2 << "\n";
}
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| subtask2 | 0/10 | ||||||
| 2 | Wrong answer | 20ms | 564 KiB | ||||
| 3 | Wrong answer | 37ms | 408 KiB | ||||
| subtask3 | 0/20 | ||||||
| 4 | Wrong answer | 6ms | 508 KiB | ||||
| subtask4 | 0/35 | ||||||
| 5 | Accepted | 1ms | 508 KiB | ||||
| 6 | Wrong answer | 3ms | 316 KiB | ||||
| 7 | Wrong answer | 2ms | 508 KiB | ||||
| 8 | Wrong answer | 3ms | 316 KiB | ||||
| 9 | Wrong answer | 2ms | 316 KiB | ||||
| 10 | Wrong answer | 2ms | 316 KiB | ||||
| 11 | Wrong answer | 2ms | 316 KiB | ||||
| subtask5 | 0/35 | ||||||
| 12 | Accepted | 1ms | 508 KiB | ||||
| 13 | Wrong answer | 20ms | 564 KiB | ||||
| 14 | Wrong answer | 37ms | 408 KiB | ||||
| 15 | Wrong answer | 6ms | 508 KiB | ||||
| 16 | Wrong answer | 3ms | 316 KiB | ||||
| 17 | Wrong answer | 2ms | 508 KiB | ||||
| 18 | Wrong answer | 3ms | 316 KiB | ||||
| 19 | Wrong answer | 2ms | 316 KiB | ||||
| 20 | Wrong answer | 2ms | 316 KiB | ||||
| 21 | Wrong answer | 2ms | 316 KiB | ||||
| 22 | Wrong answer | 43ms | 316 KiB | ||||
| 23 | Wrong answer | 25ms | 792 KiB | ||||
| 24 | Wrong answer | 21ms | 704 KiB | ||||
| 25 | Accepted | 20ms | 708 KiB | ||||
| 26 | Wrong answer | 20ms | 564 KiB | ||||
| 27 | Wrong answer | 20ms | 564 KiB | ||||
| 28 | Accepted | 20ms | 564 KiB | ||||