• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SPOJ, Flamaster błąd wykonania

Object Storage Arubacloud
0 głosów
462 wizyt
pytanie zadane 14 października 2017 w C i C++ przez Reccon Nowicjusz (240 p.)

Witam. Natrafiłem na problem podczas robienia zadania na Spoju pomoże ktoś? ;/
 

#include <iostream>
#include <string>

using namespace std;

int main()
{
	short ile;
	string ciag;
	char znak[201];


	cin >> ile;
	for (int i = 0; i < ile; i++)
	{
		cin >> ciag;
		int x = ciag.length();
		for(int j = 0; j < x; j++)
		{
			znak[j] = ciag[j];
		}

		int a = 1;
		for (int j = 0; j < x; j++)
		{
			if (znak[j] == znak[j + 1]) a++;
			else
			{
				if (a == 2) 
				{
					cout << znak[j];
					cout << znak[j];
					a = 1;
				}
				else if(a > 2)
				{
					cout << znak[j] << a;
					a = 1;
				}
				else
				{
					cout << znak[j];
					a = 1;
				}
			}
		}
		cout << endl;
	}

	system("pause");
	return 0;
}

PS. Wrzucam bez system pause.

komentarz 14 października 2017 przez Munvik Dyskutant (9,350 p.)
Po 1. Napisz jaki problem.

Po 2. Podaj link do zadania ze Spoja bo nikomu się nie chce tego szukać
komentarz 14 października 2017 przez Reccon Nowicjusz (240 p.)
Napisałem błąd wykonania.
Link do zadania:
http://pl.spoj.com/problems/FLAMASTE/

1 odpowiedź

0 głosów
odpowiedź 15 października 2017 przez j23 Mędrzec (194,920 p.)
wybrane 16 października 2017 przez Reccon
 
Najlepsza

Do przemyśleń:

      std::cin >> ciag;
      
        auto it1 = ciag.begin();
        auto it2 = it1;

        while(it2 != ciag.end())
        {
			while(it2 != ciag.end() && *it1 == *it2) ++it2;
			
            auto diff = it2 - it1;
            if(diff > 2)
            {
				std::cout << *it1 << diff;
				it1 = it2;
			}
            else 
            {
				while(it1 != it2) std::cout << *it1++;
            }
        }

        std::cout << '\n';

 

komentarz 16 października 2017 przez Reccon Nowicjusz (240 p.)
Rozumiem, że tutaj są zastosowane vectory. Jeszcze się tego nie uczyłem ale wydaję się być lepsze. Dzięki za odpowiedź :)
komentarz 16 października 2017 przez j23 Mędrzec (194,920 p.)

Nie vectory a iteratory. ciag to klasa std::string.

komentarz 16 października 2017 przez Reccon Nowicjusz (240 p.)

Zadanie zaliczone :). Usunąłem te chary bo były zbędne i pozmieniałem trochę ify
Ostatecznie zadanie wygląda tak(Spojler nie patrz póki nie zrobiłeś):
 

#include <iostream>
#include <string>

using namespace std;

int main()
{
	short ile;
	string ciag;


	cin >> ile;
	for (int i = 0; i < ile; i++)
	{
		cin >> ciag;
		int x = ciag.length();

		int a = 1;
		for (int i = 0; i < x; i++)
		{
			
			if (ciag[i] == ciag[i + 1]) a++;
			else if (a == 2)
			{
				cout << ciag[i - 1] << ciag[i];
				a = 1;
			}
			else if (a > 2)
			{
				cout << ciag[i] << a;
				a = 1;
			}
			else
			{
				cout << ciag[i];
				a = 1;
			}
		} cout << endl;

	}

	system("pause");
	return 0;
}

 

Podobne pytania

0 głosów
1 odpowiedź 211 wizyt
pytanie zadane 21 września 2020 w SPOJ przez Billy Użytkownik (680 p.)
0 głosów
2 odpowiedzi 334 wizyt
0 głosów
1 odpowiedź 388 wizyt

92,579 zapytań

141,432 odpowiedzi

319,664 komentarzy

61,964 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...