#include #include using namespace std; #define maxN 1000 #define maxH 1000 int h[maxN]; int c[maxN]; int knownCosts[maxN]; int N = 0; int globalMin = 0; int solve(int start, int currentHeight); int min(int, int); int main(int argc, char** argv) { ifstream in("input.txt"); ofstream out("output.txt"); in >> N; for(int i = 0; i < N ; i++) { in >> h[i]; in >> c[i]; knownCosts[i] = -1; } out << solve(0, maxH+1); } //lo prendo, non lo prendo int solve(int start, int currentHeight) { if(start >= N) return 0; if(h[start] < currentHeight) { return min( solve(start+1, h[start]), c[start] + solve(start+1, currentHeight) ); } else return c[start] + solve(start+1, currentHeight); } int min(int a, int b) { if(a < b) return a; return b; }