█████████ ████ ███░░░░░███ ░░███ ███ ░░░ ██████ ███████ ██████ ██████ ░███ ███░░███ ███░░███ ███░░███ ███░░███ ░███ ░███ ░███░███ ░███ ░███████ ░███ ░███ ░░███ ███░███ ░███░███ ░███ ░███░░░ ░███ ░███ ░░█████████ ░░██████ ░░████████░░██████ ░░██████ ░░░░░░░░░ ░░░░░░ ░░░░░░░░ ░░░░░░ ░░░░░░

Envío 3820

Problema 0x25 - Suma de un subarreglo grande

  • Autor: bryancalisto
  • Fecha: 2021-04-17 14:50:44 UTC (Hace alrededor de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.002 s 2 KBi
#2
Correcto
0.004 s 2 KBi
#3
Correcto
0.003 s 2 KBi
#4
Correcto
0.003 s 13 KBi
#5
Correcto
0.004 s 3 KBi
#6
Correcto
0.004 s 1 KBi
#7
Correcto
0.002 s 7 KBi
#8
Correcto
0.304 s 2 KBi
#9
Tiempo límite excedido
1.069 s 2 KBi
#10
Tiempo límite excedido
1.063 s 2 KBi
#11
Tiempo límite excedido
1.099 s 3 KBi
#12
Tiempo límite excedido
1.064 s 2 KBi
#13
Correcto
0.026 s 2 KBi
#14
Tiempo límite excedido
1.066 s 2 KBi
Puntos totales: 65 / 100

Código

#include<stdio.h>
#include<stdlib.h>

int sumarDesdeHasta(int *arr, int p, int q)
{
  int res = 0;
  // printf("p: %d / q: %d\n", p, q);
  for (int i = p; i <= q; i++)
  {
    // printf("%d + %d = %d\n", res, arr[i], res + arr[i]);
    res += arr[i];
  }

  return res;
}

int main()
{
  int N, c, i = 0, j, *arr, *consultas;

  scanf("%d*[^\n]", &N);

  arr = (int *)malloc(sizeof(int) * N);

  while (i < N && fscanf(stdin, "%d", &arr[i++]) == 1)
    ;

  scanf("%d*[^\n]", &c);

  consultas = (int *)malloc(sizeof(int) * c * 2);

  // leer cada consulta
  for (i = 0; i < c; i++)
  {
    j = 0;
    while (j < 2 && fscanf(stdin, "%d", consultas + i * 2 + j++) == 1)
      ;
  }

  // for (i = 0; i < c; i++)
  // {
  //   printf("%d %d\n", *(consultas + i * 2), *(consultas + i * 2 + 1));
  // }

  // Ejecutar cada consulta
  for (i = 0; i < c; i++)
  {
    printf("%d\n", sumarDesdeHasta(arr, *(consultas + i * 2), *(consultas + i * 2 + 1)));
  }

  return 0;
}