Browse Source

save code

tangs 7 years ago
parent
commit
9a6f8942ba
1 changed files with 73 additions and 0 deletions
  1. 73 0
      1003/1003.cpp

+ 73 - 0
1003/1003.cpp

@@ -0,0 +1,73 @@
+// 1003.cpp: 定义控制台应用程序的入口点。
+//
+
+#include "stdafx.h"
+
+
+#include<iostream>
+using namespace std;
+
+struct Node{
+	int sum;
+	int start, end;
+};
+
+
+Node* Combine(int *digs,int N, int length) {
+	Node *nodes = new Node[length];
+	bool gteZero, next = true;
+	int index = 0;
+	for (int i = 0; i < N; i++) {
+		if (i == 0) {
+			nodes[index].sum = 0;
+			nodes[index].start = 0;
+			nodes[index].end = -1;
+		}
+		else if (digs[i] >= 0 != gteZero) {
+			nodes[index].end = i - 1;
+			index++;
+			nodes[index].sum = 0;
+			nodes[index].start = i;
+			nodes[index].end = -1;
+		}
+		nodes[index].sum += digs[i];
+		gteZero = digs[i] >= 0;
+	}
+	if (nodes[index].end == -1)
+	{
+		nodes[index].end = N - 1;
+	}
+	return nodes;
+}
+
+int getResult() {
+
+}
+
+int main()
+{
+	int T, N;
+	while (cin >> T) {
+		for (int index = 0; index < T; index++) {
+			cin >> N;
+			int *digs = new int[N];
+			Node *nodes;
+			bool gteZero = false;
+			int count = 0;
+			for (int i = 0; i < N; i++) {
+				cin >> digs[i];
+				if (i == 0) {
+					count++;
+				}
+				else if (digs[i] >= 0 != gteZero) {
+					count++;
+				}
+				gteZero = digs[i] >= 0;
+			}
+			nodes = Combine(digs, N, count);
+			free(digs);
+		}
+	}
+    return 0;
+}
+