# PBinfo #4302 – status – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerința
Por Costel vrea să posteze un mesaj pe Facebook pentru fanii lui. Acest mesaj constă într-un șir continuu de caractere de la ‘a’ la ‘z’. Fiind un porc și neavând o coordonare bună ochi-copite, tastează uneori un alt caracter decât cel dorit. În acest caz, el vrea să-l steargă. Por Costel nu știe, însă, să folosească tasta Backspace, așa că atunci când vrea să șteargă un caracter, tasteaza încă o data acel caracter. Problema e că și de data aceasta Por Costel riscă să tiparească un caracter greșit, pe care va vrea sa îl “șteargă” cu aceeași metodă. Doar o dată ce a reușit  să “șteargă” toate caracterele pe care le-a greșit, va continua el să tasteze următorul caracter din mesaj. Din fericire, a reușit să termine de scris mesajul într-un timp finit și vrea să-l posteze.

Por Costel e increzător că fanii săi (Por Comunitatea) îi vor întelege mesajul. Totuși, tu ai vrea să nu existe dubii. Dându-se șirul final tiparit de Por Costel se cere reconstituirea mesajului pe care vroia să îl transmita, știind că nu existau în mesajul inițial două caractere consecutive identice.

Date de intrare
Din fișierul de intrare status.in se citeste N, lungimea sirului final tiparit de Por Costel si apoi un sir de N caractere, litere de la ‘a’ la ‘z’

Date de ieșire
În fișierul de ieșire status.out se va scrie o singura linie, mesajul pe care dorea Por Costel sa-l transmita.

Restricții și precizări

Pentru 40 de puncte: N ≤ 1 000
Pentru 100 de puncte N ≤ 1 000 000

Exemplul 1:
status.in

5
porcc
status.out

por
Exemplul 2:
status.in

12
codeedceabbn
status.out

cocean

## Cod sursă C++

```cpp
#include <fstream>
#include <stack>
#define maxn 1000010
using namespace std;
ifstream fin ("status.in");
ofstream fout ("status.out");
char st[maxn];
string s;
int n,t;
int main ()
{
    fin>>n>>s;
    for (int i = 0; i < n; ++i)
    {
        if (t != 0 && st[t] == s[i])
            --t;
        else st[++t] = s[i];
    }
    for (int i = 1; i <= t; ++i)
        fout<<st[i];
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/4302)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/4302/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-4302/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
