1. Con una cuenta podrás:

    • Publicar preguntas y pedir ayuda
    • Crear tutoriales
    • Acceder a contenido privado
    • Convertirte en un Héroe de la web
    Cerrar notificación
  2. Eres nuevo en la comunidad y necesitas ayuda?
    Sigue estos pasos y recomendaciones antes de publicar tu duda:
    Cerrar notificación

Modificaciones en un arreglo

Tema en 'Algoritmos y Ejercicios Resueltos' comenzado por joakingh, 13 de Julio de 2015.

  1. joakingh

    joakingh Nuevo Miembro

    Se incorporó:
    9 de Enero de 2015
    Mensajes:
    25
    Me gusta recibidos:
    12
    Puntos de trofeos:
    3
    Género:
    Hombre
    Ocupación:
    Estudiante
    Localización:
    Argentina
    Enunciado
    Disponemos de una lista de N elementos, inicialmente son todos ceros.

    En la entrada recibiremos los siguientes tipos de operaciones y consultas:
    I i j k: La 'I' indica el operador de INCREMENTAR. Se debe sumar k a todos los elementos entre el i-ésimo y el j-ésimo inclusive. Se asegura que k es un número no-negativo.
    S i j: La 'S' indica la consulta SUMA. Debe escribirse en la pantalla la suma de todos los elementos entre el i-ésimo y el j-ésimo inclusive
    P i j: La 'P' indica PRODUCTO. Debe imprimirse el último dígito del producto de todos los elementos entre el i-ésimo y el j-ésimo inclusive.
    M i j: La 'M' indica MÁXIMO. Debe imprimirse por pantalla el mayor elemento entre el i-ésimo y el j-ésimo inclusive.

    Dada una entrada con las operaciones y consultas explicadas arriba, se debe dar la salida correspondiente.

    Entrada
    En la primera línea se reciben 2 elementos N <= 100 y Q <= 100
    N
    indica la cantidad de elementos del arreglo, Q es la cantidad de operaciones a procesar.
    En las siguientes Q líneas se especifican las operaciones a procesar. Se utiliza el formato explicado en el enunciado.

    Salida
    Por cada operación, se debe imprimir en una línea aparte el resultado.

    Entrada ejemplo
    5 5
    I 2 5 3
    I 1 1 1
    S 1 5
    P 1 2
    M 1 3

    Salida ejemplo
    13
    3
    3

    Explicación del ejemplo
    Luego de las primeras dos operaciones la lista queda {1,3,3,3,3}
    La suma de todos los elementos es 13, el último dígito de 1*3 es 3 y el mayor entre {1,3,3} es 3.

    RECORDAR: En C++ (o Java) los índices de un arreglo empiezan en 0 (se lo llama 0-based).
    En este problema, la primera posición de una lista es 1 (1-based).

    PHP:
    #include <iostream>
    #include <stdio.h>
    using namespace std;
    int p[110];
    // A es i - B es j - C es k
    void INCREMENTAR (int a, int b, int c){
        for (int i=a-1;b > i;i++)    {      
            p[i]+=c;      
        }
    }
    int SUMA (int a, int b){
        int o=0;
        for (int i=a-1;b > i;i++){
            o += p[i];
        }
        return o;
    }
    int PRODUCTO (int a, int b){
       
        int y=1;
        for (int i=a-1;b > i;i++){
            y= (y * p[i]) % 10;
           
        }
        return y;
    }
    int MAXIMO (int a, int b){
        int t=0;
        for (int i=a-1;b > i;i++){
            if(p[i]>t)
            t=p[i];
        }
        return t;
    }
    int main(){
        int N,Q,a,b,c;
        char L;      
            cin >> N >> Q;
            for (int i=0;i<N;i++){
                    p[i]=0;}      
            for (int contador=0;contador<Q;contador++){                  
            cin >> L >> a >> b;
            if (L=='I'){
                cin >> c;
               for (int i=a-1;b > i;i++)    {      
                    p[i]+=c;      
                }
                        }
            else
                if (L=='S'){
                    cout << SUMA(a,b) << endl;
                            }
                else
                    if (L=='P'){
                        cout << PRODUCTO(a,b) << endl;
                                }
                    else
                        if (L=='M'){
                            cout << MAXIMO(a,b) << endl;
                                    }            
            }
        return 0;
    }
     
    A niño le gusta esto.

Comparte esta página