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

Envío 3831

Problema 0x25 - Suma de un subarreglo grande

  • Autor: bryancalisto
  • Fecha: 2021-04-17 21:48:41 UTC (Hace alrededor de 3 años)
Caso # Resultado Tiempo Memoria
#1
Correcto
0.004 s 5 KBi
#2
Correcto
0.005 s 2 KBi
#3
Correcto
0.004 s 1 KBi
#4
Correcto
0.002 s 2 KBi
#5
Correcto
0.002 s 2 KBi
#6
Correcto
0.005 s 1 KBi
#7
Correcto
0.003 s 1 KBi
#8
Correcto
0.358 s 3 KBi
#9
Tiempo límite excedido
1.07 s 2 KBi
#10
Tiempo límite excedido
1.061 s 1 KBi
#11
Tiempo límite excedido
1.06 s 1 KBi
#12
Tiempo límite excedido
1.054 s 2 KBi
#13
Correcto
0.024 s 2 KBi
#14
Tiempo límite excedido
1.064 s 2 KBi
Puntos totales: 65 / 100

Código

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

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

  fscanf(stdin, "%d", &N);

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

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

  fscanf(stdin, "%d", &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)
      ;

    res = 0;
    for (int k = *(consultas + i * 2); k <= *(consultas + i * 2 + 1); k++)
    {
      // printf("%d + %d = %d\n", res, arr[i], res + arr[i]);
      res += arr[k];
    }

    // printf("%d\n", sumarDesdeHasta(arr, *(consultas + i * 2), *(consultas + i * 2 + 1)));
    printf("%d\n", res);
  }

  // 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++)
  // {
  //   res = 0;
  //   for (int k = *(consultas + i * 2); k <= *(consultas + i * 2 + 1); k++)
  //   {
  //     // printf("%d + %d = %d\n", res, arr[i], res + arr[i]);
  //     res += arr[k];
  //   }

  //   // printf("%d\n", sumarDesdeHasta(arr, *(consultas + i * 2), *(consultas + i * 2 + 1)));
  //   printf("%d\n", res);
  // }

  free(consultas);
  free(arr);

  return 0;
}