#include #include int main() { // Anzahl an Aktien einlesen int num_stocks; scanf("%d", &num_stocks); if (num_stocks < 1) { printf("Anzahl der Aktienpositionen muss mindestens 1 sein.\n"); return 1; } // Werte einlesen long *price_sums = (long *)malloc((num_stocks + 1) * sizeof(long)); // Erstes Element überspringen, damit wir beim Aufsummieren darauf // zugreifen können price_sums[0] = 0; price_sums++; for (int i = 0; i < num_stocks; i++) { scanf("%ld", &(price_sums[i])); price_sums[i] += price_sums[i - 1]; } // Anzahl an Abfragen einlesen int num_queries; scanf("%d", &num_queries); if (num_queries < 1) { printf("Anzahl der Abfragen muss mindestens 1 sein.\n"); return 1; } // Abfragen einlesen int *queries = (int *)malloc(num_queries * 2 * sizeof(int)); for (int i = 0; i < num_queries; i++) { scanf("%d %d", &(queries[i * 2]), &(queries[i * 2 + 1])); if (queries[i * 2] > queries[i * 2 + 1]) { printf("Ungueltige Abfrage\n"); return 1; } } // Alle Abfragen berechnen long total_sum = 0; for (int i = 0; i < num_queries; i++) { long query_sum = price_sums[queries[i * 2 + 1]] - price_sums[queries[i * 2] - 1]; total_sum += query_sum; } // Ergebnis ausgeben printf("Gesamtsumme: %ld\n", total_sum); free(queries); free(price_sums - 1); return 0; }