Omega Up

36
Caratula NOMBRE DEL ALUMNO: LUIS enrique Hernández robledo Nombre del profesor: rene Domínguez escalona Asignatura: PROGRAMACION ORIENTADA A OBJETOS Escuela: COLEGIO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXICO Grado: 2 Grupo: 303 Turno: MATUTINO Problemas de resolución de plataforma omega up

Transcript of Omega Up

Page 1: Omega Up

Caratula

NOMBRE DEL ALUMNO: LUIS enrique Hernández robledo

Nombre del profesor: rene Domínguez escalona

Asignatura: PROGRAMACION ORIENTADA A OBJETOS

Escuela: COLEGIO DE ESTUDIOS CIENTIFICOS Y TECNOLOGICOS DEL ESTADO DE MEXICO

Grado: 2

Grupo: 303

Turno: MATUTINO

Problemas de resolución de plataforma omega up

INDICE:

Page 2: Omega Up

A.- RESTA Y MULTIPLICACION

B.- FRECUENCIAS

C.- SUMANDO

D.- ORDENANDO

E.- PASSWORD

F.- A+B

G.- MENSAJE SUMAS

H.- DIAS DE LAS SEMANA

I.- MULTIPLICANDO

J.- MISION CALCULAR AREA

K.- CUADRADO

L.- BARDEANDO

M.- MATRIZ CUADRADA

N.-AREA DE UN RECTANGULO

O.- AREA DE UN TRIANGULO

P.- ORDENA A LOS ALUMNOS

Q.- OBTENER PROMEDIO

R.- EL EXCURSIONISTA MAYOR

S.- BISIESTO

T.- FIGURAS RECTANGULARES

U.- TRIANGULO

V.- SUMA TRIPLE

W.- DEUDA

Page 3: Omega Up

A. Resta y multiplicación

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s Descripción Haz un sencillo programa que lea 4 variables nombradas A, B, C y D. Y calcula e imprima la multiplicación de la diferencia de A y B con la diferencia de C y D. (A−B C−D)

Entrada Cuatro números enteros

Salida El producto de la diferencia con 4 variables de acuerdo al ejemplo.

Ejemplo

10 6 8 3 20

CODIGO fuente:

#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {

int a,b,c,d,k,h,suma=0;

cin>>a;

cin>>b;

cin>>c;

cin>>d;

k=a-b;

h=c-d;

suma=k*h;

cout<<suma<<endl;

return 0;

}

Ejecución:

Page 4: Omega Up

B. pb Frecuencias

Puntos 100 Límite de memoria 4MB

Límite de tiempo (caso) 0.25s Límite de tiempo (total) 60s Descripción Cierta escuela realiza cuestionarios para conocer al profesor favorito de los alumnos. Y lo realiza de la siguiente manera; a cada profesor se le asigna un número posteriormente a cada alumno se le pregunta cual es su profesor favorito, posteriormente, se calcula una tabla de frecuencia indicando en cada profesor cual es la cantidad de alumnos que lo eligieron.

Problema Escribe un programa que ayude a la escuela a escribir la tabla de frecuencias.

Entrada En la primera línea el número “P” que indica la cantidad de profesores que tiene la escuela donde 1<=P <= 100 y el número “n” que indica la cantidad de alumnos en la escuela donde 1<=n<=1000. en la siguiente línea habrán “n” números que representan el número de profesor favorito “F” de cada alumno donde 1<=F<=P. Salida Deberá haber “P” cantidad de líneas y en cada una dos números separados por un guión, el primer número será el número del profesor y el segundo número la cantidad de alumnos que lo eligieron.

Consideraciones Tu programa se evaluará con varios casos de prueba.

Ejemplos

Entrada Salida Descripción

4 10 1 1 2 1 1 2 3 2 3 4

1-4 2-3 3-2 4-1

Case #1:

4 8 1 2 4 1 2 4 1 2 1-3

2-3 3-0 4-2

Case #2:

Código fuente:

#include<iostream>

using namespace std;

int main (){

int n,p;

cin>>n >>p;

int a[p];

Page 5: Omega Up

int b[n]={0};

for(int i=0;i<p;i++){

cin>>a[i];

}

for(int j=0;j<p;j++){

b[a[j]-1]++;

}

for(int i=0;i<n;i++){

cout<<i+1<<"-"<<b[i]<<endl;

}

return 0;

}

EJECUCION:

C. pb Sumando

Puntos 100 Límite de memoria 16MB

Page 6: Omega Up

Límite de tiempo (caso) 0.5s Límite de tiempo (total) 60s Problema

Se tiene un matriz cuadrada de tamaño “n” y se requiere saber cuánto suma cada columna.

Entrada

En el primer renglón un valor “n” indicando el tamaño de la matriz donde 1<=n<=1000 y en los siguientes “n” renglones habrán “n” valores correspondientes los valores de cada renglón de la matriz donde 1<=V<= 1000.

Salida Un renglón con “n” cantidades, cada cantidad representa la sumatoria de cada columna de la matriz, el primer valor corresponde a la columna 1, el segundo a la columna 2 ,... y el último valor corresponde a la columna “n”.

Consideraciones Tu programa se evaluará con varios casos de prueba.

Ejemplos

Entrada Salida Descripción

3 1 2 3 3 5 6 7 8 9

11 15 18 Case #1:

4 3 2 4 3 2 3 3 2 7 8 5 3 1 1 1 1

13 14 13 9 Case #2:

CODIGO FUENTE:

#include<iostream>

using namespace std;

int main (){

int n;

cin>>n;

int a[n][n];

int b[n]{0};

for(int i=0;i<n;i++){

for(int j=0;j<n;j++){

cin>>a[i][j];

b[j]+=a[i][j];

}

}

for(int j=0;j<n;j++){

cout<<b[j]<<" ";

}

Page 7: Omega Up

cout<<endl;

}

Ejecucion:

D. pb Ordenando

Puntos 100 Límite de memoria 4MB

Límite de tiempo (caso) 0.5s Límite de tiempo (total) 60s Problema Dada una lista de números enteros hay que determinar si la lista esta ordenada de menor a mayor, de mayor a menor o sencillamente no está ordenada.

Entrada En la primera línea un valor “n” indicando la cantidad de valores que conforma la lista, donde 3<=n<=1000, en la segunda línea los “n” números separados por un espacio, cada número está en el rango de 1 a 1,000,000,000.

Salida Una sola línea con 3 posibles valores, si la lista está ordenada de menor a mayor debes escribir la palabra “CRECIENTE” si la lista esta ordenada de mayor a menor debes escribir la palabra “DECRECIENTE” y si la lista no esta ordenada debes escribir la frase “NO ORDENADA”. Te aseguramos que no existe un caso con posibilidad de empate (que pueda ser creciente y decreciente).

Consideraciones Tu programa se evaluará con varios casos de prueba.

Ejemplos

Entrada Salida Descripción

5 10 20 30 40 40

CRECIENTE Case #1:

3 3 2 2

DECRECIENTE Case #2:

Page 8: Omega Up

4 1 10 10 5

NO ORDENADA Case #3:

Código fuente:

#include <iostream>

using namespace std;

int main() {

int n,k=0,l=0;

cin>>n;

int a[n];

for(int i=0;i<n;i++){

cin>>a[i];

}

for(int i=0;i<n;i++){

if(a[i]<a[i+1]) {

k+=1;

}

if(a[i]>a[i+1]){

l+=1; }

}

if(k==n){

cout<<"CRECIENTE";

}

else if(l==n-1){

cout<<"DECRECIENTE";

}else

{

cout<<"NO ORDENADA";

} return 0;

}

Ejecución:

Page 9: Omega Up

E. pb Password

Puntos 100 Límite de memoria 4MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

Descripción Para que un password sea seguro debe seguir las siguientes reglas:

• Tener al menos una vocal. • No tener dos o más caracteres consecutivos iguales. • Tener una longitud de al menos 12 caracteres. • Tener al menos un carácter numérico.

Problema Escribe un que nos ayude a determinar si un password es seguro o no.

Entrada En la primera línea un número n indicando la cantidad de caracteres que conforman el password, donde 1≤n≤100, en la siguiente línea n caracteres que pueden ser letras de la A a la Z, números del 1 al 9. las letras minúsculas y mayúsculas se consideran diferentes.

Salida Si el password es seguro de acuerdo a las reglas establecidas debes escribir la palabra SEGURO en caso contrario debes escribir la frase INSEGURO.

Consideraciones Tu programa se evaluará con varios casos de prueba.

Ejemplos

Entrada Salida

5 abcdd INSEGURO

12 aft156YTU512 SEGURO

CODIGO FUENTE:

#include<iostream>

using namespace std;

int main(){

int password;

cin>>password;

Page 10: Omega Up

if(password<12){

cout<<"INSEGURO";

}else

cout<<"SEGURO";

}

EJECUCION:

F. A+B

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

Descripción Este problema consiste en crear un programa que sume dos números.

Entrada Dos números A y B separados por un espacio.

Salida Imprime A+B

Ejemplo

Entrada Salida Descripción

1 2 3 1+2=3

5 10 15 5+10=15

CODIGO FUENTE:

#include <iostream>

Page 11: Omega Up

using namespace std;

int main() {

int A,B,suma=0;

cin>>A,B;

cin>>B;

suma=A+B;

cout<<suma<<endl;

}

EJECUCION:

G. E-S Mensaje Sumas

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

Descripción Es un problema muy simple, para acostumbrarse a los jueces automáticos, lo que tienes que hacer es recibir dos números y con estos dos números los sume y muestre la salida indicando el mensaje de la suma como se muestra en el ejemplo.

Entrada Un número entero a y un número entero b.

Salida Debe mostrar el siguiente mensaje donde a y b debe sustituirse por los valores que recibe como entrada el programa y la palabra resultado por la suma de ambos numeros, asegurate de respetar mayúsculas y minúsculas y los espacios en blanco intermedios.

La suma de a + b es resultado

Ejemplo

Entrada Salida

Page 12: Omega Up

1 2 La suma de 1 + 2 es 3

CODIGO Fuente:

#include <iostream>

using namespace std;

int main(int argc, char *argv[]) {

int a,b,suma=0;

cin>>a;

cin>>b;

suma=a+b;

cout<<"La suma de "<< a << " + " << b << " es " << suma <<endl;

return 0;

}

Ejecución:

H. Día de la semana

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

# Descripción Se esta programando un robot que apartir de que le indiques un número te dira que día de la semana es pero el robot tiene un problema el puede recibir un número del del 1 al 7 y dirá el día de la semana correspondiente(donde el 1 es el día lunes),pero si recibe un número incorrecto el robot manda un mensaje de error, pero se ha descubierto que el robot cuando introduces el número tiene un error por que el programador del robot uso la siguiente formula que se le aplica al número que introduce 2n+1 y apartir de aqui indica el día, es decir si el usuario introduce un 1 el resultado será Miercoles.

Entrada 1

Salida Miercoles

Entrada 8

Page 13: Omega Up

Salida Error

Notas El usuario puede introducir indefinidamente números y tu programa debe ser capaz de controlar esto. ||end

I. Multiplicando

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s Descripción Se requiere que realices un un calculo a partir de recibir un número, entregar el producto de los números consecutivos del 1 a n, por ejemplo si recibes el 3 el resultado es 6, es decir el resultado de multiplicar 1×2×3.

Entrada Un único entero n.

Salida La multiplicación de los números consecutivos del 1 al n.

Ejemplo

Entrada Salida

5

120

Límites

0≤n≤20

Código fuente:

#include <iostream>

using namespace std;

int main() {

int a,b;

cin>>a;

b=(a*2)+1;

switch(b)

{

case 1:

cout<<" Lunes";

break;

case 2:

cout<<" Martes";

break;

case 3:

Page 14: Omega Up

cout<<" Miercoles";

break;

case 4:

cout<<" Jueves";

break;

case 5:

cout<<" Viernes";

break;

case 6:

cout<<" Sabado";

break;

case 7:

cout<<" Domingo";

break;

default:

cout<< " Error";

break;

}

return 0;

Ejecución:

J. Misión Calcular Area

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

Page 15: Omega Up

Descripción Tu misión si decides aceptarla es encontrar el área de un cilindro, cuya formula como bien sabes es 2PIr*h donde PI es 3.1416 y r:representa el radio y h:la altura. pero cuidado por que no estan sencillo resolver el problema el resultado lo debes entregar con 2 cifras decimales despues del

punto.

Entrada 1 2

Salida 12.57

Notas El primer número que recibes es el radio y el segundo número es la altura.

La misión aunque parecia muy sencilla, se va a complicar por que si el primer número que lees es el -1 debes ignorarlo y en seguida leer el radio y posteriormente la altura. ||end

Código fuente:

#include <iostream>

#include <iomanip>

using namespace std;

int main() {

int r,h;

float p=3.1416;

double c=0;

cin>>r;

if(r<0){

cin>>r;

}

cin>>h;

if(h<0){

cin>>h;

}

c=(2*p)*r*h;

std::cout << std::fixed;

std::cout << std::setprecision(2) << c <<endl;}

Ejecución:

Page 16: Omega Up

K. pb Cuadrado

Puntos 100 Límite de memoria 16MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

Descripción. A continuación te mostramos un giro de 90 grados a la derecha de una matriz de 2 por 2 cuyos valores son:

Matriz original

1 2 3 4

Matriz Girada 90° a la derecha

3 1 4 2

Problema Dada una matriz cuadrada de tamaño “n” , debes hacer que tu programa la gire 90 grados a la derecha.

Entrada En la primera línea el valor “n” indicando el tamaño de la matriz donde 1<=n<=1000, en los siguientes “n” renglones habrán “n” valores de la matriz separados por un espacio.

Salida

“n” renglones cada renglón con "n" valores mostrando la matriz girada 90 grados. Consideraciones Tu programa se evaluará con varios casos de prueba Ejemplo

Entrada Salida Descripción

2 1 2 3 4

3 1 4 2

Case #1:

Entrada Salida Descripción

3 1 2 3 4 5 6 7 8 9

7 4 1 8 5 2 9 6 3

Case #2:

Page 17: Omega Up

CODIGO fuente:

#include <iostream>

using namespace std;

main()

{

int n;

cin>>n;

int a[n][n];

if(1<=n<=1000)

{

for(int i=0;i<n;i++)

{

for(int j=0;j<n;j++)

{

cin>>a[i][j];

}

}

cout<<endl<<endl;

for (int i=0;i<n;i++)

{

for(int j=n-1;j>=0;j--)

{

cout<<a[j][i]<<" ";

}

cout<<endl;

}

}

}

Ejecución:

Page 18: Omega Up

L. pb Bardeando

Puntos 100 Límite de memoria 4MB

Límite de tiempo (caso) 0.25s Límite de tiempo (total) 60s

Descripción Se tiene un conjunto de “n” trozos de malla ciclónica y un terreno de perímetro “P” el terreno es cuadrado.

Problema Debes escribir un programa que nos diga cuántos metros de malla ciclonica nos hace falta para poder bardear el terreno.

Entrada

En la primera línea dos números “P” y "n", donde "P" representa el perímetro del terreno con un rango de valores de 1<=P <= 2,000,000,000 y “n” representa la cantidad de trozos de malla ciclónica que tenemos, donde 1<=n<=100,000. En las siguientes “n” líneas es el tamaño de cada trozo de malla que tenemos. La suma de todos los trozos siempre será menor a 2147483648.

Salida Un único valor entero indicando los metros de malla que nos hacen falta para bardear el terreno.

Ejemplos

Entrada Salida Descripción

100 3 25 20

45 Caso #1

Entrada Salida Descripción

10

100 2 1000 2000

0 Caso #2

21 1 20

1 Caso #3

Consideraciones

Page 19: Omega Up

Tu programa se ejecutara con varios casos de prueba.

CODIGO FUENTE:

#include<iostream>

using namespace std;

int main(){

int P,n,c,m=0,Cachofaltante=0;

cin>>P>>n;

for (int i=0;i<n;i++){

cin>>c;

m+=c;

}

Cachofaltante=P-m;

if(m>P){

cout<<0;

}else

cout<<Cachofaltante<<endl;

}

EJECUCION:

M. pb Matriz Cuadrada

Puntos 100 Límite de memoria 4MB

Límite de tiempo (caso) 0.25s Límite de tiempo (total) 60s

Descripción Descripción Tenemos una matriz de “R” renglones por “C” columnas, donde podemos enumerar las casillas de la siguiente manera, la casilla 1,1 (renglón 1, columna 1), la casilla 1,2 (renglón 1, columna 2) y la casilla 1,3 (renglón 1, columna 3 ) serían respectivamente las posiciones 1, 2 y 3 como se puede ver en la figura, donde la casilla 1,1 es la esquina superior izquierda y la celda “R” x “C” es la celda ubicada en la esquina inferior derecha.

Page 20: Omega Up

En esta cuadrícula, podemos hacer preguntas de la forma, ¿que número está en la casilla 1,2 ? y su respuesta sería 2 otro ejemplo ¿qué número está en la celda 2,3? y su respuesta es 6.

Problema Escribe un programa que dada las dimensiones de la cuadrícula responda una cantidad “P” de preguntas.

Entrada En la primera línea dos valores indicando las dimensiones de la cuadrícula separados por un espacio ‘R’ cantidad de renglones donde 1<=R<=10000 y “C” cantidad de columnas donde 1<=C<=10000, En la tercera línea el número “P” cantidad de preguntas donde 1<=P<=10,000 y en las siguientes “P” líneas un par de coordenadas de la forma r, c, representando las coordenadas de cada pregunta en donde “r” indica el renglón 1<=r<=R y “c” la columna 1<=c<=C por cada pregunta.

Salida Por cada pregunta debe escribir en cada línea el número de casilla que le corresponde.

Ejemplos

Entrada Salida Descripción

3 3 3 1 1 2 2 3 3

1 5 9 Caso #1

3 1000 2 2 1 2 10

1001 2010

Caso #2

Consideraciones Tu programa se ejecutara con varios casos de prueba.

Tip Tip Revise por cada renglón de preguntas cuántos valores debe avanzar, en la Entrada 1 para la primera pregunta debe avanzar 0, para la segunda debe avanzar 3 y para la tercer pregunta debe avanzar 6.

CODIGO FUENTE: #include<iostream>using namespace std;

int main(){

int r,c,p,r1;

Page 21: Omega Up

cin>>r>>c>>p;

int g[p][2];

for( int i=0; i<p;i++){

for( int j=0; j<2;j++){

cin>>g[i][j];

}

}

for(int f=0;f<p;f++){

r=((g[f][0]-1)*c)+g[f][1];

cout<<r<<" ";

}

}

EJECUCION:

N. Área de un rectángulo

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

Descripción Se te darà la base y la altura de un rectángulo, deberás desplegar su área.

Entrada Dós números b y a

Salida La salida deberá ser el área del rectángulo

Ejemplo

12 5 60

2 7 14

CODIGO FUENTE:

Page 22: Omega Up

#include <iostream>

using namespace std;

int main() {

int b,a,multiplicacion=0;

cin>>b;

cin>>a;

multiplicacion=b*a;

cout<<multiplicacion<<endl;

}

EJECUCION:

O. Área de un triángulo

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

Descripción Se te dará la base y la altura de un triángulo, deberás desplegar su área.

Entrada Dós números b y a

Salida La salida deberá ser el área del triángulo con dos decimales después del punto.

Ejemplo

12 5 30.00

3 5 7.50

CODIGO FUENTE:

Page 23: Omega Up

#include <iostream>

#include<iostream>

#include<math.h>

#include <stdio.h>

#include <iomanip>

using namespace std;

main (){

float b,a;

double area;

cin>>b;

cin>>a;

area=(b*a)/2;

cout<<fixed<<setprecision(2)<<area;

}

EJECUCION:

P. 1 Ordena a los alumnos

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s Descripción Los Chicos de la escuela van a recibir un premio, pero tienen que estar formados de la calificacion mayor a la menor, ya que el Profe Rayito quiere orden y dar el mejor premio a la mejor calificacion, y asi sucesivamente.

Entrada Primero hay que pedir la cantidad de Alumnos y despues las calificaciones Salida mostrar las calificaciones ordenadas del mayor al menor

Ejemplo

Entrada Salida Descripción

4 75 82 100 50

100 82 75 50 Cantidad de alumnos, y en la segunda linea las calificaciones

Límites

Page 24: Omega Up

No especificado

CODIGO FUENTE:

#include <iostream>

using namespace std;

int main()

{

int n,aux;

cin>>n;

int a[n];

for(int i=0;i<n;i++)

{

cin>>a[i];

}

for(int i=0;i<n;i++)

{

for(int j=0;j<n;j++)

{

if(a[i]>a[j])

{

aux=a[i];

a[i]=a[j];

a[j]=aux;

}

}

}

for(int i=0;i<n;i++)

{

cout<<a[i]<<" ";

}

return 0;

}

Page 25: Omega Up

Ejecución:

Q. 1 Obtener promedio

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s Descripción EL maestro Melquiades quiere saber el promedio de calificaciones de su grupo, Por lo que tu como programador le ayudaras codificando un programita que le pida una cantidad de alumnos, y en seguida las calificaciones

Entrada La cantidad de Alumnos y las "n" calificaciones en escala 0 al 100, sin decimales.

Salida Mostrar el promedio con dos decimales.

Ejemplo

Entrada Salida Descripción

4 50 100 100 50

75.00 Pedir la Cantidad de alumnos, y las "n" calificaciones. Mostrar el promedio con dos decimales.

Límites No especificado

Código fuente:

#include<iostream>

using namespace std;

int main () {

int n,a,p=0;

cin>>n;

cout<<endl;

for(int i=0;i<n;i++){

Page 26: Omega Up

cin>>a;

p+=a;

}

float prom=p/n;

cout<<prom<<".00"<<endl;

}

EJECUCION:

R. 1 El excursionista Mayor

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s Descripción Los Falmos van de excursión, pero de todo el grupo de "humanitos" el que tiene la mayor edad es al que se le entregara el dinero para la compra del material de campamento. Ayudale a Mamá Falmo a saber quien es el que tiene la mayor edad.

Entrada Preguntar cuantos van a ir de excursión, y la edad de cada uno.

Salida Mostrar solo la edad mas grande.

Ejemplo

Entrada Salida Descripción

5 15 16 5 13 12

16 Pedir la cantidad de Excursionistas, y la edad de cada uno.Desplegar la Edad del mayor.

Límites No especificado

Código fuente:

Page 27: Omega Up

#include <iostream>

using namespace std;

int main()

{

int n;

cin>>n;

int a[n];

for(int i=0;i<=n-1;i++)

cin>>a[i];

int mayor=0;

for(int j=0;j<=n-1;j++){

if(mayor<a[j])

mayor=a[j];

}

cout<<mayor;

}

Ejecución:

S. 1 Bisiesto

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s Descripción Un año es bisiesto si es divisible entre 4, a menos que sea divisible entre 100. Sin embargo, si un año es divisible entre 100 y además es divisible entre 400, también resulta bisiesto.

Entrada La primera línea tendrá un número N, la cantidad de años por analizar. Después habrá N líneas con un solo número entero, que representa el año que tendrás que decidir si es o no bisiesto. Todos los años serán mayores a 1600 y menores a 3,000.

Salida Por cada año de la entrada escribe una "S" o una "N", dependiendo de si el año es bisiesto o no respectivamente.

Ejemplo

Entrada Salida

Page 28: Omega Up

2 2011 2012 N

S

Límites No especificado

CODIGO FUENTE:

#include<iostream>

using namespace std;

int main(){

int n,p;

cin>>n;

for(int i=0;i<n;i++){

cin>>p;

if(p%2==0){

cout<<"S"<<endl;

}else

cout<<"N"<<endl;

}

}

EJECUCION:

T. pb Figuras Rectangulares

Puntos 100 Límite de memoria 4MB

Límite de tiempo (caso) 0.25s Límite de tiempo (total) 60s Descripción Tenemos un conjunto de cuadrados y rectángulos cuyos medidas de sus diferentes lados son cantidades enteras y mayores a 1 y , si tenemos el área de la figura, es posible que sea un cuadrado o un rectángulo.

Problema Construye un programa que nos ayude a resolver este problema (dada el área de una figura determinar si es cuadrado o rectángulo), la lectura la debes hacer de la entrada estándar (teclado) y la escritura se debe hacer a la salida estándar (pantalla).

Page 29: Omega Up

Entrada La primera línea contendrá un número "N" entre 1 y 1,000,000,000, representando el área.

Salida Una sola línea indicando la figura que se puede formar, si el área puede formar un cuadrado debes imprimir la palabra “cuadrado” si el área puede formar un rectángulo, debes imprimir la palabra “rectangulo” y si el área puede formar ambos debe imprimir la palabra “ambos” (note no hay acentos ni mayusculas), en caso de que no se pueda formar un cuadrado o rectángulo escriba "ninguno"

Ejemplos

Entrada Salida

9 cuadrado

6 rectangulo

36 ambos

Consideraciones Tu programa se ejecutara con varios casos de prueba.

Tips

• Área de un cuadrado = lado * lado • Área de un rectángulo= (base * altura )

• ¿Hasta que valor con respecto a “N” debo probar ? • Observa que solo debes probar desde 2 hasta raíz de "N", si un número es divisible entre 2 significa que también es

divisible entre N/2 por tanto si probamos con el numero 2, estamos al mismo tiempo probando con el numero N/2.

CODIGO FUENTE:

#include <iostream>

#include <math.h>

using namespace std;

int main() {

int n,r,p,c;

cin>>n;

p=sqrt(n);

r=p*p;

c=n/2*2;

if(c==n && r==n){

cout<<"ambos"<<endl;

}

else if(c==n){

cout<<"rectangulo"<<endl;

}

else if(r==n){

cout<<"cuadrado"<<endl;

Page 30: Omega Up

}

else{

cout<<"ninguno"<<endl;

}

return 0;

}

EJECUCION:

U. pb Triángulo

Puntos 100 Límite de memoria 4MB

Límite de tiempo (caso) 0.25s Límite de tiempo (total) 60s

Descripción Un triángulo es formado por 3 segmentos (con valor entero) de recta unidos por sus extremos, sin embargo no todas las combinaciones de 3 segmentos pueden formar un triángulo.

Problema Escriba un programa que dados 3 números que representan 3 segmentos de rectas, diga si pueden formar un triángulo rectángulo.

Entrada En la primera línea 3 números “a”, “b” y “c” representando las longitudes de 3 segmentos de recta en un rango de entre 1 y 32,000.

Salida Una sola línea en donde si es posible generar un triángulo rectángulo debes imprimir la hipotenusa, el cateto mayor y el cateto menor y si no es posible formar un triángulo rectángulo imprime la palabra “imposible”.

Consideraciones Tu programa se evaluará con varios casos de prueba, para cada caso de prueba (entrada)

Ejemplos

Entrada Salida Descripción

1 1 1 imposible Caso #1

3 4 5 5 4 3 Caso #2

Page 31: Omega Up

Consideraciones Tu programa se ejecutara con varios casos de prueba.

Tips El teorema de Pitágoras la hipotenusa es igual a la raíz cuadrada de la suma de los cuadrados de sus catetos.

¿Es necesario hacer el cálculo de la raíz cuadrada?

CODIGO FUENTE:

#include<iostream>

using namespace std;

main (){

int a,b,c;

cin>>a;

cin>>b;

cin>>c;

if (a==b && b==c){

cout<<c<<" "<<b<<" "<<a;

}else

if(a==c && c==b){

cout<<c<<" "<<b<<" "<<a;

}else

if(b==c && c==a){

cout<<c<<" "<<b<<" "<<a;

}else

cout<<"Imposible";

}

V. pb Suma Triple

Puntos 100 Límite de memoria 4MB

Límite de tiempo (caso) 0.1s Límite de tiempo (total) 60s

Descripción Se tiene la siguiente función f(n), formada por la suma de los tres números anteriores.

f(1)=1 f(2)=1 f(3)=2 f(4)=4 f(5)=7 f(6)=13 f(7)=24 f(8)=44 f(9)=81 Note que f(1) = 1 ya que no tiene números anteriores,

Page 32: Omega Up

f(2)=1 ya que es el único número anterior, f(3) tiene solo 2 números anteriores y a partir de f(4) se da la suma de los tres números anteriores.

Problema

Escribe un programa que dado el valor de “n” escriba la serie correspondiente.

Entrada

Un solo renglón conteniendo el valor “n”donde 1<=n<=64.

Salida Una sola línea mostrando la serie desde el número menor hasta el mayor cada número debe estar separado por un espacio.

Entrada Salida Descripción

4 1 1 2 4 Caso #1

6 1 1 2 4 7 13 Caso #2

9 1 1 2 4 7 13 24 44 81 Caso #3

Tips Un entero 32 bits es capaz de almacenar la f(n) para n=60

Código fuente:

#include <iostream>

using namespace std;

int main() {

long f;

cin>>f;

long* a=new long[f];

a[0]=1;

a[1]=1;

a[2]=2;

for (int i=3;i<f;i++)

{

a[i]=a[i-1]+a[i-2]+a[i-3];

}

for(int i=0;i<f;i++){

cout<<a[i]<<" ";

Page 33: Omega Up

}

return 0;

}

Ejecución:

W. Deuda 2

Puntos 100 Límite de memoria 32MB

Límite de tiempo (caso) 1s Límite de tiempo (total) 60s

# Descripción Nuestro amigo Cope tiene un problema pues le debe algunas cosas a cierta persona con la cual no puede quedar mal, sin embargo dicha persona es muy mala con Cope y trata de hacer que le pague más de lo que le debe, para esto le dice que los intereses han subido y pone mil cosas para cobrar de más pero del unico interes que se hablo fue al momento de comenzar la transacción. Ayuda a Cope a llevar un buen control de su deuda sabiendo cuanto debe y cuanto abona, se sabe que originalmente se indico los intereses.

Entrada En la primera línea tres números enteros I, N, M separados por un espacio representando el interes acordado(número entero que representa el interes) inicialmente, número de cosas que debe Cope y los pagos que hará respectivamente. Siguiente M líneas un entero representando el pago de Cope.

Salida Un entero representando como finaliza la cuenta de Cope.

Ejemplo

Entrada Salida Descripción

0 10 2 3 6

1 Ninguna.

Entrada Salida Descripción

Page 34: Omega Up

100 10 2 3 6

11 Ninguna.

CODIGO FUENTE:

#include <iostream>

using namespace std;

int main()

{

int a,b,c,d,e,f,suma=0;

cin>>a>>b>>c;

for(int a=0;a<c;a++)

{

cin>>d;

suma+=d;

}

e=b-suma;

f=e+a/b;

cout<<f;

return 0;

}

EJECUCION: