ФЭНДОМ


Атучин М.М.: Выкладываю тут свои решения, к сожалению C/C++, но при желании - разберётесь.

Задача 1Править

Потерялось - выложите свое

Задача 2Править

#include <cstdio>
#include <cstdlib>
#include <vector>
#include <set>
#include <map>
#include <algorithm>

const int inf = 0x3f3f3f3f;
const long long infl = 0x3f3f3f3f3f3f3f3fLL;

#define Eo(x){ std::cerr << #x << " = " << x << std::endl;}
const int maxn = 30000;
int n;
int h[maxn];
long long cost[maxn + 1];

int main(){
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
	scanf("%d", &n);
	for ( int i = 0; i < n; i++)
		scanf("%d", h + i);
	cost[0] = 0;
	for ( int i = 1; i < n; i++)
		cost[i] = std::min(cost[i - 1] + abs(h[i] - h[i - 1]), (i > 1) ? cost[i - 2] + 3 * abs(h[i] - h[i - 2]) : inf);
	printf("%Ld", cost[n - 1]);

	return 0;
}

Задача 3Править

#include <cstdio>
#include <iostream>
#include <cstdlib>
#include <vector>
#include <set>
#include <map>
#include <algorithm>

const int inf = 0x3f3f3f3f;
const long long infl = 0x3f3f3f3f3f3f3f3fLL;
int n;

#define Eo(x){ std::cerr << #x << " = " << x << std::endl;}
int a[4] = {2, 3, 5, 7};
int cnt[4];
std::string e;

int main(){
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
	scanf("%d", &n);
	for ( int i = 0; i < 4; i++)
	while ( n % a[i] == 0){
		cnt[i] ++;
		n /= a[i];
	}
	if (n > 1){
		std::cout << "0";
		return 0;
	}
	for ( int i = 0; i < cnt[3]; i++)
		e += '7';
	for ( int i = 0; i < cnt[2]; i++)
		e += '5';

	while (cnt[1] >= 2){
		e += '9';
		cnt[1] -= 2;
	}

	while (cnt[0] >= 3){
		e += '8';
		cnt[0] -= 3;
	}
	int p = 1;
	for ( int i = 0; i < 2; i++)
	for ( int j = 0; j < cnt[i]; j++)
		p *= a[i];

	if ( p == 2 * 2 * 3)
		e += "26";
	else
		e += (p + '0');

	std::sort(e.begin(), e.end());

	if ( e == "")
		std::cout << "1";
	else
		std::cout << e;
	return 0; 
}

Задача 4Править

#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <vector>
#include <string>
#include <set>
#include <map>
#include <algorithm>

const int inf = 0x3f3f3f3f;
const long long infl = 0x3f3f3f3f3f3f3f3fLL;

#define Eo(x){ std::cerr << #x << " = " << x << std::endl;}
std::string a,b;
int n, m;

int main(){
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
	std::cin >> a >> b;
	m = a.length();
	n = b.length();
	int i, j = 0;
	for ( i = 0; i < m; i++){
		while ( j < n && a[i] != b[j])
			j++;
		if ( j >= n) break;
	}
	if ( i == m)  
		printf("YES\n");
	else
		printf("NO\n");
	return 0;
}

Задача 5Править

#include <cstdio>
#include <cstdlib>
#include <vector>
#include <set>
#include <map>
#include <cmath>
#include <algorithm>

const int inf = 0x3f3f3f3f;
const long long infl = 0x3f3f3f3f3f3f3f3fLL;

#define Eo(x){ std::cerr << #x << " = " << x << std::endl;}
double x[2], y[2], r[2];

double sqr(double x){
	return x*x;
}
int main(){
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
	for ( int i = 0; i < 2; i++)
	scanf("%lf%lf%lf", x + i, y + i, r + i);

	double delta = sqrt(sqr(x[0] - x[1]) + sqr(y[0] - y[1]));

	double cr = (delta + r[0] + r[1]) / 2;

	double cx, cy;
	if ( cr > r[0] && cr > r[1]){
		cx = x[0] + (x[1] - x[0]) / delta * (cr - r[0]);
		cy = y[0] + (y[1] - y[0]) / delta * (cr - r[0]);
		printf("%lf %lf %lf\n", cr, cx, cy);
	}else{
		if (cr <= r[0])
			printf("%lf %lf %lf\n", r[0], x[0], y[0] );
		else
			printf("%lf %lf %lf\n", r[1], x[1], y[1]);
	}

	return 0;
}

Обнаружено использование расширения AdBlock.


Викия — это свободный ресурс, который существует и развивается за счёт рекламы. Для блокирующих рекламу пользователей мы предоставляем модифицированную версию сайта.

Викия не будет доступна для последующих модификаций. Если вы желаете продолжать работать со страницей, то, пожалуйста, отключите расширение для блокировки рекламы.

Также на ФЭНДОМЕ

Случайная вики