Aceasta este ultima problema de facut pe vacanta si imi da batai de cap va rog ajutor.
. Un pitic vrea să urce o scară care are n trepte de înălţimi date, ordonate crescător. Înălţimile treptelor sunt în cm şi sunt valori întregi. Acolo unde diferenţa între două trepte consecutive este de 1 cm piticul urcă fără dificultăţi, unde diferenţa este mai mare decât 1 cm piticul trebuie să ia o pastilă care îi dă putere să sară pe treapta următoare. Cunoscând înălţimile treptelor, prima fiind obligatoriu 0, piticul vrea să afle care este numărul minim de pastile de care are nevoie pentru a urca scara şi de asemenea care este cea mai mare diferenţă dintre două trepte consecutive.
Exemplu: pentru n=9 şi înălţimile treptelor 0 3 4 6 7 10 19 20 21, se va afişa:
numar minim de pastile =4 diferenta maxima=9
Multumesc anticipat
Răspunsuri la întrebare
Răspuns de
2
#include <bits/stdc++.h>#define N 1001
using namespace std;
int v[N];
int main(){ int n;
int pastile = 0; int maxim = INT_MIN;
cin >> n;
int i; for(i = 1; i <= n; i++) cin >> v[i];
for(i = 1; i < n; i++) { int d = v[i+1]- v[i]; if(d != 1) pastile++; if(d > maxim) maxim = d; }
cout << pastile << " " << maxim; return 0;}
using namespace std;
int v[N];
int main(){ int n;
int pastile = 0; int maxim = INT_MIN;
cin >> n;
int i; for(i = 1; i <= n; i++) cin >> v[i];
for(i = 1; i < n; i++) { int d = v[i+1]- v[i]; if(d != 1) pastile++; if(d > maxim) maxim = d; }
cout << pastile << " " << maxim; return 0;}
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Biologie,
9 ani în urmă
Informatică,
9 ani în urmă