Monday, May 9, 2016

UVa 11790 - Murcia's Skyline

// UVa 11790 - Murcia's Skyline

#include <iostream>
#include <vector>
#include <stdio.h>
using namespace std;

int main() {
	int tt;
	cin >> tt;
	for (int t = 1; t <= tt; t++) {
		int n;
		cin >> n;
		vector<int> h, w, inc, dec;
		for (int i = 0; i < n; i++) {
			int a;
			cin >> a;
			h.push_back(a);
		}
		for (int i = 0; i < n; i++) {
			int a;
			cin >> a;
			w.push_back(a);
		}
		int s1 = 0, s2 = 0;
		for (int i = 0; i < n; i++) {
			inc.push_back(0);
			dec.push_back(0);
			for (int j = 0; j < i; j++) {
				if (h[j] < h[i] && inc[j] > inc[i])
					inc[i] = inc[j];
				if (h[j] > h[i] && dec[j] > dec[i])
					dec[i] = dec[j];
			}
			inc[i] += w[i];
			dec[i] += w[i];
			if (inc[i] > s1)
				s1 = inc[i];
			if (dec[i] > s2)
				s2 = dec[i];
		}
		if (s1 >= s2)
			printf("Case %d. Increasing (%d). Decreasing (%d).\n", t, s1, s2);
		else
			printf("Case %d. Decreasing (%d). Increasing (%d).\n", t, s2, s1);
	}
	return 0;
}

No comments:

Post a Comment