Buna!
Ma poate ajuta cineva cu problema aceasta?
#2837 Intervale5
Enunț
Soluții
Cerința
Se dă un șir de cel mult un milion de numere naturale din intervalul [0,102]. Se cere să se determine toate perechile distincte formate din termeni ai șirului dat, x și y (y-x≥2), astfel încât să nu existe niciun termen al șirului care să aparțină intervalului (x,y). Dacă nu există nicio astfel de pereche, se afișează mesajul nu exista.
Date de intrare
Fișierul de intrare intervale5.in conține pe prima linie elementele șirului, separate prin spații.
Date de ieșire
Fișierul de ieșire intervale5.out va conține perechile găsite, câte una pe linie, în ordine strict crescătoare, separate printr-un spațiu, iar dacă nu există nicio astfel de pereche, se afișează mesajul nu exista.
Restricții și precizări
pentru determinarea numerelor cerute utilizați un algoritm eficient din punctul de vedere al timpului de executare: recomandă evitarea memorării elementelor șirului într-un tablou sau în altă structură de date similară;
Exemplu
intervale5.in
5 9 0 8 10 11 12 13 15 14 6 7 40 10 0 0 5 41 95 7
intervale5.out
0 5
15 40
41 95
Multumesc!
Răspunsuri la întrebare
Răspuns de
8
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("intervale5.in");
ofstream g("intervale5.out");
int v[102], i, x, y, gasit, num;
int main()
{
while (f >> num)
++v[num];
i=0; while (v[i]==0) ++i;
while (i<99)
{
while (v[i]!=0 && i<99) ++i;
if (i<100)
{
x=i-1;
while (v[i]==0 && i<101) ++i;
if (i<101)
{
y=i;
if (y-x>=2)
{g << x << " " << y << "\n";
gasit=1;}
}
}
}
if (gasit==0) g << "nu exista";
}
Explicație:
dacă ai neclarităţi, întreabă, dar mai întîi stăruete să înţelegi logica
boiustef:
toate numerele din fişier se spune că sunt din intervalul [0,100], deaceea vectorul de frecvenţă e de această dimensiune
0 0 4 1 0 0 0 3 2 1 0 0 0 0 4 .....
asta înseamnă că ân fişier nu s-a găsit 0 şi nici 1, iar 2 este de 4 ori, 3 este de 1 ori, numerele 4, 5, 6 lipsesc, iar 7 de 3 ori, sunt 2 de 8, un 9, nu este 10, 11, 12 13 şi sunt 4 de 14 şamd
Alte întrebări interesante
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă