• Jueves 28 de Marzo de 2024, 23:57

Autor Tema:  Ultimo  (Leído 3190 veces)

Binary

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Ultimo
« en: Lunes 16 de Agosto de 2004, 14:38 »
0
Bueno, ya que ninguno de los anteriores fue resuelto... demosle la bienvenida al ultimo que posteo, por lo menos sera facil:

Descripcion:
Encontrar una subsequencia de numeros de largo N (2 <= N <= 100 000 000) de la sequencia dada, de modo que la suma de todos los numeros de la subsequencia sea divisible por K (2 <= K <= 10 000 000).

Entrada:
En la primera linea: dos enteros: N y K
En la segunda: N enteros

Salida:
En la primera linea, 2 enteros: i, j (denotando que la sequencia encerrada entre Si... Sj, es la secuencia deseada).... para un i <= j.

Ejemplo:

Entrada:
7 10
2 4 3 5 2 7 2

Salida:
3 5

Explicacion:
S(3) --> 3
S(4) --> 5
S(5) --> 2
3 + 5 + 2 = 10
10 % 10 = 0.

Saludos....
P.D. Por favor, nada de N^2 o N^3 porque N es bastante grande.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Ultimo
« Respuesta #1 en: Lunes 16 de Agosto de 2004, 16:27 »
0
si ninguno de los ancerrar el post publicando tu solucion, tal como esta en los demas retos, por ejemplo del del protocolo hdlc, una evz hecho eso yo mismo cerrare el post.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Binary

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Ultimo
« Respuesta #2 en: Lunes 16 de Agosto de 2004, 18:20 »
0
se supone que hay una o mas personas tratando de solucionar los anteriores.... espero que lo hagan... en una semana posteo soluciones...

Binary

  • Miembro activo
  • **
  • Mensajes: 66
    • Ver Perfil
Re: Ultimo
« Respuesta #3 en: Martes 24 de Agosto de 2004, 00:59 »
0
Código: Text
  1.  
  2. // Divisibility
  3. #include &#60;stdio.h&#62;
  4. #define MAXR 10000001
  5.  
  6. int r[MAXR];
  7.  
  8. int main()
  9. {
  10.   int n, k, i, num, mod, found;
  11.   __int64 sum = 0;
  12.   FILE *fin, *fout;
  13.  
  14.   fin = fopen(&#34;div.in&#34;, &#34;r&#34;);
  15.   fout = fopen(&#34;div.out&#34;, &#34;w&#34;);
  16.  
  17.   found = 0;
  18.   fscanf(fin, &#34;%d %d&#34;, &n, &k);
  19.   for(i = 0; i &#60; n; i++) {
  20.     fscanf(fin, &#34;%d&#34;, &num);
  21.     sum += num;
  22.     mod = (int)(sum % k);
  23.     if(r[mod] != 0) {
  24.       fprintf(fout, &#34;%d %d&#092;n&#34;, r[mod]+2, i+1);
  25.       found = 1;
  26.       break;
  27.     }
  28.     r[mod] = i;
  29.   }
  30.  
  31.   if(!found)
  32.     fprintf(fout, &#34;NO SOLUTION&#092;n&#34;);
  33.  
  34.   fclose(fin);
  35.   fclose(fout);
  36.   return 0;
  37. }
  38.  
  39.