Valoare Apropiata
Rezolvare in C++ cu if,else, while, for va rog, dau coroana
Pasiunea lui Cosmin pentru jocuri video l-a determinat să se apuce de programare, pentru a putea crea și el jocuri pentru alți oameni. După ce a lansat câteva aplicații simple pe Play Store, a construit un joc multiplayer.
Dinamica jocului e următoarea:
Fiecare jucător primește la început un cartonaș cu un șir de n numere naturale
Pentru a câștiga, jucătorul trebuie să identifice corect PERECHEA fiecărui număr din șirul de pe cartonașul său de joc.
O pereche a unei valori x din șirul de pe un cartonaș este un număr y care face parte din același șir și are următoarea proprietate:
dacă x se află pe poziție pară, y e minimul dintre numerele mai mari decât x care se găsesc în stânga lui x în șir
dacă x se află pe poziție impară, y e minimul dintre numerele mai mari decât x care se găsesc în dreapta lui x în șir
Date de intrare
Pe prima linie se va găsi un număr natural n, reprezentând numărul total de valori de pe un cartonaș, iar pe următoarea linie un șir de n numere naturale, reprezentând elementele șirului de numere de pe acel cartonaș.
Date de ieșire
Programul va afișa pe ecran un șir de n numere, reprezentând șirul de perechi corespunzătoare fiecărui element x din șir. Dacă există un număr x care nu are o astfel de pereche în șir, se va afișa valoarea -1 în locul perechii sale.
Restricții și precizări
0 < n ≤ 100
0 ≤ x ≤ 1 000
Răspunsuri la întrebare
Răspuns de
4
#include <iostream>
using namespace std;
int main() {
int n;
int v[101];
//Citire vector
cin >> n;
for (int i = 1; i <= n; i++) cin >> v[i];
for (int px = 1; px <= n; px++) {
//Daca e pozitie para
if (px % 2 == 0) {
//Cauta min dintre numerele mai mari din stanga
int mn = -1;
for (int py = 1; py < px; py++)
if (v[py] > v[px] && (v[py] < mn || mn == -1)) mn = v[py];
//Afiseaza solutie
cout << mn << " ";
}
//Daca e pozitie impara
else {
//Cauta min dintre numerele mai mari din dreapta
int mn = -1;
for (int py = px + 1; py <= n; py++)
if (v[py] > v[px] && (v[py] < mn || mn == -1)) mn = v[py];
//Afiseaza solutie
cout << mn << " ";
}
}
}
NOTA :
Am modificat programul pentru inceperea sirului de la 1.
Anexe:
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Evaluare Națională: Lb. Română ,
8 ani în urmă
Matematică,
9 ani în urmă
Date de intrare
7
24 248 456 0 35 74 554
Date de iesire
35 -1 554 24 74 248 -1
Ai putea sa ma ajuti? Multumesc !