Informatică, întrebare adresată de Fanepatentultare, 9 ani în urmă

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 Dropbox
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;}
Alte întrebări interesante
Matematică, 8 ani în urmă