Fluttuazioni_Finanziarie 70/100 C++


#1

Nonostante il codice mi sembri apparentemente corretto, non riesco a spiegarmi i test case errati (prendo solo 70/100);

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(int argc, char** argv) {
	ifstream fin("input.txt");
	ofstream fout("output.txt");
	int N;
	fin>>N;
	int v[N];
	for(int i=0;i<N;i++){
		fin>>v[i];
	}
	int MaxD = v[0]-v[1];
	for(int i=1;i<N-1;i++){
		if(v[i]-v[i+1]>MaxD) MaxD = v[i]-v[i+1];
	}
	fout<<MaxD;
	return 0;
}

#2

Va considerato il caso in cui N è 1


#3

Credo che il problema sia che devi guardare il valore assoluto massimo della differenza tra due valori, ma tu guardi solo il caso in cui il prezzo cala e non quello in cui cresce


#4

Anche se le assunzioni permettono che possa essere N = 1 non credo che sia accettabile, per fare una differenza ci vogliono 2 termini.
Anch’io calcolerei il valore assoluto di tutte le differenze.