Calculadora ---- Concurso de programación de algoritmos del Benelux Preliminar 2016

Es la mente humana la que libera la luz infinita, y también es la mente humana la que crea la oscuridad ilimitada. La luz y la oscuridad se entrelazan y luchan juntas. Este es el mundo por el que estamos nostálgicos y desamparados.

                                                   A. Juego de bloques

Descripción

Estás asistiendo al Concurso Internacional de Construcción para Niños en Edad Preescolar. Desafortunadamente, eres demasiado mayor para participar, pero aún disfrutas viendo la competencia. Entre rondas, estás caminando por el área del concurso cuando ves a una niña pequeña, una de las concursantes, jugando con sus bloques. Molesto porque ella se está divirtiendo, decides desafiarla a un juego. Colocas dos pilas de bloques de cierta altura. Luego, tú y el niño se turnan para quitar una cantidad de bloques de la pila que contiene la mayor cantidad de bloques (si ambas pilas tienen la misma cantidad de bloques, el jugador actual puede elegir cualquiera de las pilas para quitar bloques). La cantidad de bloques eliminados debe ser un múltiplo positivo de la cantidad de bloques en la pila más pequeña. Por ejemplo, si hay una pila con 5 bloques y una con 23 bloques, entonces el jugador actual puede quitar 5, 10, 15 o 20 bloques de la pila de 23 bloques. El jugador que vacía una de las pilas gana el juego. Usted ha decidido gentilmente hacer el primer movimiento, pero luego se le ocurre una preocupación: ¿podría este preescolar tortuoso todavía poder vencerlo?

Entrada

Una línea con dos números enteros N y M, satisfaciendo 1 <= N, M <= 10 ^ {18} 1018, los tamaños iniciales de los dos montones de bloques.

Salida

Genere una sola línea que contenga una sola palabra: la palabra "ganar" si tiene la garantía de ganar si juega correctamente, y la palabra "perder" si su oponente puede obligarlo a perder.

Los espacios adicionales al final de cada línea durante la salida no afectarán la exactitud de la respuesta

Entrada de muestra 1 copia

3 2

Salida de muestra 1 copia

perder

Copia de entrada de muestra 2

3 3

Copia de salida de muestra 2

ganar

Copia de entrada de muestra 3

5 2

Copia de salida de muestra 3

ganar
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
#define PP pair<ll,int>
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
#define PI 3.1415926
typedef long long ll;
using namespace std;
int const mod=1e9+7;
const int maxn=3e5+10;
ll M,N,ct;
int main(){
	cin>>N>>M;
	ll fg=0,mx=max(N,M),mi=min(M,N);
	if(mx%mi==0)
		cout<<"win"<<endl;
	else{
//		cout<<mx<<' '<<mi<<endl;
		while(mx%mi!=0){
			if(mx/mi>1){
				fg=1;
				break;
			}
			ct+=1;
			ll ls=mx%mi;
			mx=mi;
			mi=ls;
		}
//		cout<<fg<<endl;
		if(fg==0&&ct%2==1)
			cout<<"lose"<<endl;
		else
			cout<<"win"<<endl;
	}
	return 0;
}

                                        C. Completando el cuadrado

En el corazón de su ciudad natal, hay una antigua plaza, cerca de la estación de tren, apropiadamente llamada _Station Square_. Antes parecía un cuadrado perfecto: cuatro lados de igual longitud unidos por ángulos rectos. Sin embargo, no se ha visto así durante décadas, ya que una de las cuatro esquinas fue destruida por los bombardeos de la Segunda Guerra Mundial. Después de la guerra, la plaza fue reconstruida como un cuarto de círculo, y se ha visto así desde entonces. (En otras palabras, parece un triángulo rectángulo isósceles, excepto que la hipotenusa no es una línea recta sino un arco circular). Esto se ilustra en la figura siguiente, que corresponde con la Entrada de muestra 1. 

Imagen

 

Figura 1 : Ilustración de la primera entrada de ejemplo.

Recientemente, el ayuntamiento votó para remodelar completamente la estación de tren y sus alrededores, lo que incluye restaurar la Plaza de la Estación a su estado original. Por lo tanto, deben determinar la ubicación exacta de la cuarta esquina. Esta tarea es demasiado complicada para los regidores ordinarios, por lo que la ciudad decidió contratar a un científico de primer nivel. ¡Ese serías tú! ¡Ayuda a la ciudad a completar el cuadrado y serás recompensado enormemente!

Entrada

Hay tres líneas de entrada. Cada línea contiene dos números enteros que denotan las coordenadas xx e yy de una de las esquinas del cuadrado actual (-10 ^ 4 \ leq x, y \ leq 10 ^ 4−104≤x, y≤104). 

Salida

Genere una línea con dos enteros separados por espacios que denotan las coordenadas xx e yy de la cuarta esquina perdida hace mucho tiempo.

Los espacios adicionales al final de cada línea durante la salida no afectarán la exactitud de la respuesta

Entrada de muestra 1 copia

2 -5 
-8 -1 
-5 -8

Salida de muestra 1 copia

-1 2

Copia de entrada de muestra 2

0 0 
1 0 
1 1

Copia de salida de muestra 2

0 1

Copia de entrada de muestra 3

2 
-1-2 3 
2 7

Copia de salida de muestra 3

6 3
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <cctype>
#include <bitset>
#include <utility>
#include <sstream>
#include <complex>
#include <iomanip>
#include<climits>//INT_MAX
#define PP pair<ll,int>
#define inf 0x3f3f3f3f
#define llinf 0x3f3f3f3f3f3f3f3fll
#define dinf 1000000000000.0
#define PI 3.1415926
typedef long long ll;
using namespace std;
int const mod=1e9+7;
const int maxn=3e5+10;
int x[5],y[5],X,Y;
int main(){
	int q1,q2,q3,p1,p2,p3;
	for(int i=1;i<=3;i++)
		cin>>x[i]>>y[i];
	q1=x[1]-x[2];
	p1=y[1]-y[2];
	q2=x[1]-x[3];
	p2=y[1]-y[3];
	q3=x[2]-x[3];
	p3=y[2]-y[3];
//	cout<<k1<<' '<<k2<<' '<<k3<<endl;
	if(q1*q2+p1*p2==0){
		X=x[3]-q1;
		Y=y[3]-p1;
		cout<<X<<' '<<Y<<endl;
	}
	else if(q1*q3+p1*p3==0){
		X=x[3]+q1;
		Y=y[3]+p1;
		cout<<X<<' '<<Y<<endl;
	}
	else if(q2*q3+p2*p3==0){
		X=x[2]+q2;
		Y=y[2]+p2;
		cout<<X<<' '<<Y<<endl;
	}
	return 0;
}

 

Supongo que te gusta

Origin blog.csdn.net/weixin_44170305/article/details/108415294
Recomendado
Clasificación