#1878
Cerința
Se consideră un șir ai cărui termeni sunt numere naturale nenule, de o singură cifră. Numim număr asociat al acestui șir un număr natural format cu termenii șirului, în ordinea în care aceștia apar în șir.
Se cere determinarea unui șir obținut prin eliminarea a doi termeni situați pe poziții consecutive în șirului dat, astfel încât numărul asociat șirului obținut să fie maxim.
Date de intrare
Fișierul de intrare nrasoc.in conține pe prima linie o succesiune de cifre, separate prin câte un spațiu, reprezentând termenii șirului dat.
Date de ieșire
Fișierul de ieșire nrasoc.out va conține pe prima linie un șir de cifre, separate prin câte un spațiu, reprezentând șirul corespunzător numărului asociat maxim.
Restricții și precizări
fișierul de intrare conține cel mult 80 de cifre.
Exemplu
nrasoc.in
9 8 5 7 6 2 3 4
nrasoc.out
9 8 6 2 3 4
Explicație
Numerele asociate șirurilor care se pot obține sunt 576234, 976234, 986234, 2985234, 985734, 985764, 985762. Fișierul de ieșire va conține:
9 8 6 2 3 4
Răspunsuri la întrebare
Răspuns de
9
Răspuns:
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream f("nrasoc.in");
ofstream g("nrasoc.out");
int main()
{
int x, y, z, gata = 0;
f >> x >> y;
while (!gata && f >> z)
{
if (x >= z)
{
g << x << " ";
x = y; y = z;
}
else gata = 1;
}
if (gata)
{
g << z << " ";
while (f >> z) g << z << " ";
}
return 0;
}
Explicație:
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Engleza,
8 ani în urmă
Chimie,
8 ani în urmă
Franceza,
9 ani în urmă
Matematică,
9 ani în urmă