Codeforces Ronda # 660 (Div.2) A ~ D

A. Capitán Flint y contratación de la tripulación

límite de tiempo por prueba

1 segundo

límite de memoria por prueba

256 megabytes

entrada

entrada estándar

salida

salida estándar

A pesar de su mala reputación, el Capitán Flint es una persona amigable (al menos amigable con los animales). Ahora el Capitán Flint está buscando marineros dignos para unirse a su nueva tripulación (únicamente con fines pacíficos). Un marinero es considerado digno si puede resolver la tarea de Flint.

Recientemente, de la nada, el Capitán Flint se ha interesado por las matemáticas e incluso ha definido una nueva clase de números enteros. Definamos un entero positivo xx como casi primo si se puede representar como p⋅qp⋅q, donde 1 <p <q1 <p <q y pp y qq son números primos. Por ejemplo, los enteros 66 y 1010 son casi primos (ya que 2⋅3 = 62⋅3 = 6 y 2⋅5 = 102⋅5 = 10), pero los enteros 11, 33, 44, 1616, 1717 o 4444 no lo son.

El Capitán Flint adivinó un número entero nn y le preguntó: ¿puede representarlo como la suma de 44 números enteros positivos diferentes donde al menos 33 de ellos deberían ser casi primos?

El tío Bogdan resolvió fácilmente la tarea y se unió a la tripulación. ¿Puedes hacer lo mismo?

Entrada

La primera línea contiene un solo entero tt (1≤t≤10001≤t≤1000): el número de casos de prueba.

Las siguientes líneas tt contienen casos de prueba, uno por línea. La primera y única línea de cada caso de prueba contiene el número entero nn (1≤n≤2⋅105) (1≤n≤2⋅105) - el número que adivinó Flint.

Salida

Para cada impresión de caso de prueba:

  • SÍ y 44 números enteros positivos diferentes de manera que al menos 33 de ellos sean casi primos y su suma sea igual ann (si hay varias respuestas, imprima cualquiera de ellos);
  • NO si no hay forma de representar nn como la suma de 44 enteros positivos diferentes donde al menos 33 de ellos son casi primos.

Puede imprimir cada carácter de SÍ o NO en cualquier caso.

Ejemplo

entrada

Copiar

7
7
23
31
36
44
100
258

salida

Copiar

NO
NO
YES
14 10 6 1
YES
5 6 10 15
YES
6 7 10 21
YES
2 10 33 55
YES
10 21 221 6

Nota

En el primer y segundo caso de prueba, se puede demostrar que no hay cuatro números enteros positivos diferentes, de modo que al menos tres de ellos son casi primos.

En el tercer caso de prueba, n = 31 = 2⋅7 + 2⋅5 + 2⋅3 + 1n = 31 = 2⋅7 + 2⋅5 + 2⋅3 + 1: los números enteros 1414, 1010, 66 son casi primos.

En el cuarto caso de prueba, n = 36 = 5 + 2⋅3 + 2⋅5 + 3⋅5n = 36 = 5 + 2⋅3 + 2⋅5 + 3⋅5: los enteros 66, 1010, 1515 son casi primos.

En el quinto caso de prueba, n = 44 = 2⋅3 + 7 + 2⋅5 + 3⋅7n = 44 = 2⋅3 + 7 + 2⋅5 + 3⋅7: los enteros 66, 1010, 2121 son casi primos.

En el sexto caso de prueba, n = 100 = 2 + 2⋅5 + 3⋅11 + 5⋅11n = 100 = 2 + 2⋅5 + 3⋅11 + 5⋅11: los enteros 1010, 3333, 5555 son casi primos.

En el séptimo caso de prueba, n = 258 = 2⋅5 + 3⋅7 + 13⋅17 + 2⋅3n = 258 = 2⋅5 + 3⋅7 + 13⋅17 + 2⋅3: enteros 1010, 2121, 221221 , 66 son casi primos.

Idea principal:

Ingrese un número N y obtenga cuatro números diferentes, tres de los cuales son números primos aproximados (el producto de dos números primos), de modo que la suma de estos cuatro números sea igual a N.

solución:

Encuentre los primeros tres números primos aproximados, a saber, 6, 10, 14, y vea si N menos estos tres números es mayor que 0, y luego juzgue si el número restado es igual a uno de ellos, si es así, ponga 14 Cambie a 15 y reste el número restante -1.

Codigo aceptado

#pragma GCC optimize(3)
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;

#define sc scanf
#define ls rt << 1
#define rs ls | 1
#define Min(x, y) x = min(x, y)
#define Max(x, y) x = max(x, y)
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define pir pair <int, int>
#define MK(x, y) make_pair(x, y)
#define MEM(x, b) memset(x, b, sizeof(x))
#define MPY(x, b) memcpy(x, b, sizeof(x))
#define lowbit(x) ((x) & -(x))
#define P2(x) ((x) * (x))

typedef long long ll;
const int Mod = 1e9 + 7;
const int N = 1e5 + 100;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
inline ll dpow(ll a, ll b){ ll r = 1, t = a; while (b){ if (b & 1)r = (r*t) % Mod; b >>= 1; t = (t*t) % Mod; }return r; }
inline ll fpow(ll a, ll b){ ll r = 1, t = a; while (b){ if (b & 1)r = (r*t); b >>= 1; t = (t*t); }return r; }



int main()
{
	int T; cin >> T;
	while (T--) {
		int n;
		sc("%d", &n);
		if (n <= 30)
			puts("NO");
		else {
			puts("YES");
			int w = n - 30;
			if (w == 6 || w == 10 || w == 14)
				printf("6 10 15 %d\n", w - 1);
			else
				printf("6 10 14 %d\n", w);
		}
	}
	return 0;  // 改数组大小!!!用pair记得改宏定义!!!
}

B. Capitán Flint y un largo viaje

límite de tiempo por prueba

2 segundos

límite de memoria por prueba

256 megabytes

entrada

entrada estándar

salida

salida estándar

El capitán Flint y su tripulación siguen dirigiéndose a una costa salvaje de Byteland durante varios meses, bebiendo ron y contando historias. En esos momentos, el tío Bogdan recuerda a menudo a su sobrino Denis. Hoy, ha contado una historia sobre cómo Denis lo ayudó a encontrar un problema interesante y le pidió a la tripulación que lo resolviera.

Al principio, el tío Bogdan escribió en una pizarra un entero positivo xx que constaba de nn dígitos. Después de eso, eliminó xx y escribió el entero kk en su lugar, que era la concatenación de representaciones binarias de los dígitos xx (sin ceros iniciales). Por ejemplo, sea x = 729x = 729, luego k = 111101001k = 111101001 (ya que 7 = 1117 = 111, 2 = 102 = 10, 9 = 10019 = 1001).

Después de un tiempo, el tío Bogdan comprendió que no sabía qué hacer con kk y le pidió ayuda a Denis. Denis decidió borrar los últimos nn dígitos de kk y nombró el nuevo número como rr.

Como resultado, Denis propuso encontrar un entero xx de longitud nn tal que rr (como número) sea el máximo posible. Si hay varios xx válidos, Denis está interesado en el mínimo.

Todos los miembros de la tripulación, incluido el propio capitán Flint, resolvieron fácilmente la tarea. Todos, excepto el grumete Kostya, que estaba demasiado borracho para pensar con claridad. ¿Pero qué hay de ti?

Nota: en esta tarea, comparamos números enteros (xx o kk) como números (independientemente de las representaciones en las que estén escritos), por lo que 729 <1999729 <1999 o 111 <1000111 <1000.

Entrada

La primera línea contiene un solo entero tt (1≤t≤10001≤t≤1000): el número de casos de prueba.

Las siguientes líneas tt contienen casos de prueba, uno por caso de prueba. La única línea de cada caso de prueba contiene el número entero nn (1≤n≤1051≤n≤105): la longitud del entero xx que necesita encontrar.

Se garantiza que la suma de nn de todos los casos de prueba no exceda 2⋅1052⋅105.

Salida

Para cada caso de prueba, imprima el número entero mínimo xx de longitud nn tal que el obtenido por el número de Denis rr sea el máximo posible.

Ejemplo

entrada

Copiar

2
1
3

salida

Copiar

8
998

Nota

En el segundo caso de prueba (con n = 3n = 3), si el tío Bogdan tenía x = 998x = 998, entonces k = 100110011000k = 100110011000. Denis (limpiando los últimos n = 3n = 3 dígitos) obtendrá r = 100110011r = 100110011.

Se puede demostrar que 100110011100110011 es la máxima rr posible que Denis puede obtener y 998998 es la mínima xx para obtenerla.

Idea principal:

Ingrese un número N, debe construir un número cuyos dígitos sean N, elimine el último N de su número binario, y la cadena binaria restante debe ser lo más grande posible. Si hay varios números de este tipo, envíe el más pequeño.

solución:

Solo hay 8 y 9 números binarios de cuatro dígitos, así que use 8, 9 para construir y vea cuántos números de cuatro dígitos ocupan los números binarios eliminados N. Complete el frente con 9 y el reverso con 8.

Codigo aceptado

#pragma GCC optimize(3)
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;

#define sc scanf
#define ls rt << 1
#define rs ls | 1
#define Min(x, y) x = min(x, y)
#define Max(x, y) x = max(x, y)
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define pir pair <int, int>
#define MK(x, y) make_pair(x, y)
#define MEM(x, b) memset(x, b, sizeof(x))
#define MPY(x, b) memcpy(x, b, sizeof(x))
#define lowbit(x) ((x) & -(x))
#define P2(x) ((x) * (x))

typedef long long ll;
const int Mod = 1e9 + 7;
const int N = 1e5 + 100;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
inline ll dpow(ll a, ll b){ ll r = 1, t = a; while (b){ if (b & 1)r = (r*t) % Mod; b >>= 1; t = (t*t) % Mod; }return r; }
inline ll fpow(ll a, ll b){ ll r = 1, t = a; while (b){ if (b & 1)r = (r*t); b >>= 1; t = (t*t); }return r; }



int main()
{
	int T; cin >> T;
	while (T--) {
		int n;
		sc("%d", &n);
		int t = (n - 1) / 4 + 1;
		for (int i = 0; i < n - t; i++)
			printf("9");
		for (int i = 0; i < t; i++)
			printf("8");
		puts("");
	}
	return 0;  // 改数组大小!!!用pair记得改宏定义!!!
}

C. El tío Bogdan y la felicidad campestre

límite de tiempo por prueba

2 segundos

límite de memoria por prueba

256 megabytes

entrada

entrada estándar

salida

salida estándar

El tío Bogdan está en la tripulación del capitán Flint durante mucho tiempo y, a veces, siente nostalgia por su tierra natal. Hoy les contó cómo su país introdujo un índice de felicidad.

Hay nn ciudades y n − 1n − 1 carreteras no dirigidas que conectan pares de ciudades. Los ciudadanos de cualquier ciudad pueden llegar a cualquier otra ciudad viajando por estas carreteras. Las ciudades están numeradas del 11 al nn y la ciudad 11 es una capital. En otras palabras, el país tiene una estructura de árbol.

Hay ciudadanos mm que viven en el país. Un pueblo pipi vive en la ii-ésima ciudad pero todos están trabajando en la capital. Por la noche, todos los ciudadanos regresan a sus ciudades de origen por los caminos más cortos.

Cada persona tiene su propio estado de ánimo: alguien sale de su lugar de trabajo de buen humor pero alguien ya está de mal humor. Además, cualquier persona puede arruinar su estado de ánimo de camino a su ciudad natal. Si la persona está de mal humor, no lo mejorará.

Los detectores de felicidad están instalados en cada ciudad para monitorear la felicidad de cada persona que visita la ciudad. El detector de la ii-ésima ciudad calcula un índice de felicidad hihi como el número de personas de buen humor menos el número de personas de mal humor. Digamos por la sencillez que el estado de ánimo de una persona no cambia dentro de la ciudad.

El detector de felicidad aún está en desarrollo, por lo que existe la probabilidad de que se produzca un error al juzgar la felicidad de una persona. Una tarde, cuando todos los ciudadanos regresaron a casa con éxito, el gobierno le pidió al tío Bogdan (el mejor programador del país) que verificara la exactitud de los índices de felicidad recopilados.

El tío Bogdan resolvió con éxito el problema. ¿Puedes hacer lo mismo?

Más formalmente, debe verificar: "¿Es posible que, después de que todas las personas regresen a casa, para cada ciudad ii el índice de felicidad sea exactamente igual a hihi".

Entrada

La primera línea contiene un solo entero tt (1≤t≤100001≤t≤10000): el número de casos de prueba.

La primera línea de cada caso de prueba contiene dos números enteros nn y mm (1≤n≤1051≤n≤105; 0≤m≤1090≤m≤109) - el número de ciudades y ciudadanos.

La segunda línea de cada caso de prueba contiene nn números enteros p1, p2,…, pnp1, p2,…, pn (0≤pi≤m0≤pi≤m; p1 + p2 +… + pn = mp1 + p2 +… + pn = m) , donde pipi es el número de personas que viven en la ii-ésima ciudad.

La tercera línea contiene nn números enteros h1, h2,…, hnh1, h2,…, hn (−109≤hi≤109−109≤hi≤109), donde hihi es el índice de felicidad calculado de la ii-ésima ciudad.

Las siguientes n − 1n − 1 líneas contienen una descripción de las carreteras, una por línea. Cada línea contiene dos números enteros xixi y yiyi (1≤xi, yi≤n1≤xi, yi≤n; xi ≠ yixi ≠ yi), donde xixi y yiyi son ciudades conectadas por la ii-ésima carretera.

Se garantiza que la suma de nn de todos los casos de prueba no exceda 2⋅1052⋅105.

Salida

Para cada caso de prueba, imprima SÍ, si los datos recopilados son correctos, o NO, en caso contrario. Puede imprimir caracteres en SÍ o NO en cualquier caso.

Ejemplos

entrada

Copiar

2
7 4
1 0 1 1 0 1 0
4 0 0 -1 0 -1 0
1 2
1 3
1 4
3 5
3 6
3 7
5 11
1 2 5 2 1
-11 -2 -6 -2 -1
1 2
1 3
1 4
3 5

salida

Copiar

YES
YES

entrada

Copiar

2
4 4
1 1 1 1
4 1 -3 -1
1 2
1 3
1 4
3 13
3 3 7
13 1 4
1 2
1 3

salida

Copiar

NO
NO

Idea principal:

 Un árbol de N puntos, el primer peso de cada punto indica cuántos residentes viven aquí (quizás no), todos están inicialmente en 1, y tienen que caminar desde 1 hasta donde viven. Al principio, todos o El estado de ánimo es bueno o malo. De camino a casa, el estado de ánimo solo puede ir de bueno a malo. El segundo peso de cada punto significa que la persona que está de buen humor, una persona de mal humor después de ese punto, regresa a casa y se da la salida Si las condiciones son legales.

solución:

Conociendo el tamaño de los residentes en el subárbol de cada punto y el peso del punto, entonces la situación es única, y es suficiente para juzgar si es legal cuando DFS retrocede. Hay dos cosas principales para juzgar: 1. Si los residentes son suficientes, 2. Si el número de residentes en el subárbol actual se puede construir en el peso del punto. Al construir, observe que el mal humor en el subárbol se puede convertir en buen humor en el punto actual.

Codigo aceptado

#pragma GCC optimize(3)
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;

#define sc scanf
#define ls rt << 1
#define rs ls | 1
#define Min(x, y) x = min(x, y)
#define Max(x, y) x = max(x, y)
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define pir pair <int, int>
#define MK(x, y) make_pair(x, y)
#define MEM(x, b) memset(x, b, sizeof(x))
#define MPY(x, b) memcpy(x, b, sizeof(x))
#define lowbit(x) ((x) & -(x))
#define P2(x) ((x) * (x))

typedef long long ll;
const int Mod = 1e9 + 7;
const int N = 1e5 + 100;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
inline ll dpow(ll a, ll b){ ll r = 1, t = a; while (b){ if (b & 1)r = (r*t) % Mod; b >>= 1; t = (t*t) % Mod; }return r; }
inline ll fpow(ll a, ll b){ ll r = 1, t = a; while (b){ if (b & 1)r = (r*t); b >>= 1; t = (t*t); }return r; }

vector <int> G[N];
ll a[N], h[N];
ll good[N], bad[N]; 
int n, m;
bool ok;

void Init() {
	for (int i = 1; i <= n; i++) {
		G[i].clear();
		good[i] = bad[i] = 0;
	}
	ok = true;
}
void DFS(int x, int fa) {
	ll gd = 0, bd = 0;
	ll son = 0;

	for (auto v : G[x]) {
		if (v == fa)
			continue;
		DFS(v, x);
		son += a[v];   // 子树居民数
		gd += good[v];  // 子树好心情
		bd += bad[v];   // 子树坏心情
	}

	if (abs(h[x]) > a[x] + son)  // 数量不够
		ok = false;

	ll gd1 = (h[x] + son + a[x]) / 2;   // 当前情况的好心情数量
	ll bd1 = gd1 - h[x];                 // 坏心情

	if (gd + bd + a[x]!= gd1 + bd1 || gd1 < 0 || bd1 < 0 || gd > gd1) // 构造不了
		ok = false;
	bad[x] = bd1, good[x] = gd1;
	a[x] += son;
}

int main()
{
	int T; cin >> T;
	while (T--) {
		sc("%d %d", &n, &m);
		Init();

		for (int i = 1; i <= n; i++)
			sc("%lld", &a[i]);
		for (int i = 1; i <= n; i++)
			sc("%lld", &h[i]);

		for (int i = 1; i < n; i++) {
			int u, v; 
			sc("%d %d", &u, &v);
			G[u].push_back(v);
			G[v].push_back(u);
		}

		DFS(1, 0);
		if (ok)
			puts("YES");
		else
			puts("NO");
	}
	return 0;  // 改数组大小!!!用pair记得改宏定义!!!
}

D. Capitán Flint y Treasure

límite de tiempo por prueba

2 segundos

límite de memoria por prueba

256 megabytes

entrada

entrada estándar

salida

salida estándar

El Capitán Fint está involucrado en otra búsqueda del tesoro, pero solo ha encontrado un problema extraño. El problema puede estar relacionado con la ubicación del tesoro o no. Por eso el capitán Flint decidió dejar la solución del problema a su tripulación y ofreció una recompensa absurdamente alta: un día libre. El problema en sí suena así ...

Hay dos matrices aa y bb de longitud nn. Inicialmente, un ansans es igual a 00 y se define la siguiente operación:

  1. Elija la posición ii (1≤i≤n1≤i≤n);
  2. Agregue aiai a ansans;
  3. Si bi ≠ −1bi ≠ −1 entonces agregue aiai a abiabi.

¿Cuál es el valor máximo de ansans que puede obtener al realizar la operación en cada ii (1≤i≤n1≤i≤n) exactamente una vez?

El tío Bogdan está ansioso por obtener la recompensa, por lo que está pidiendo tu ayuda para encontrar el orden óptimo de posiciones para realizar la operación en ellos.

Entrada

La primera línea contiene el número entero nn (1≤n≤2⋅1051≤n≤2⋅105) - la longitud de las matrices aa y bb.

La segunda línea contiene nn números enteros a1, a2,…, ana1, a2,…, an (−106≤ai≤106−106≤ai≤106).

La tercera línea contiene nn enteros b1, b2,…, bnb1, b2,…, bn (1≤bi≤n1≤bi≤n o bi = −1bi = −1).

Restricción adicional: se garantiza que para cualquier ii (1≤i≤n1≤i≤n) la secuencia bi, bbi, bbbi, ... bi, bbi, bbbi, ... no es cíclica, en otras palabras, siempre terminará con −1 −1.

Salida

En la primera línea, imprima los ansans máximos que puede obtener.

En la segunda línea, imprima el orden de las operaciones: nn números enteros diferentes p1, p2,…, pnp1, p2,…, pn (1≤pi≤n1≤pi≤n). El pipi es la posición que debe elegirse en el segundo paso. Si hay varios pedidos, imprima cualquiera de ellos.

Ejemplos

entrada

Copiar

3
1 2 3
2 3 -1

salida

Copiar

10
1 2 3 

entrada

Copiar

2
-1 100
2 -1

salida

Copiar

99
2 1 

entrada

Copiar

10
-10 -1 2 2 5 -2 -3 -4 2 -6
-1 -1 2 2 -1 5 5 7 7 9

salida

Copiar

-9
3 5 6 1 9 4 10 7 8 2

Idea principal:

 Hay dos matrices ay b. La matriz a representa el peso de la posición y la matriz b representa el siguiente índice de la posición (-1 significa que no hay un índice siguiente). Debe seleccionar el número de cada posición una vez. Cuando elija Para el número de la posición i, el peso del índice de puntos debe sumarse al peso del punto actual. El orden de selección del número es arbitrario, y el peso máximo que se puede construir y el método de construcción se generan.

solución:

No es difícil ver que si el peso de una posición es positivo, primero debe seleccionarse, y si es negativo, su índice debe seleccionarse antes que la posición. Pero no puede construir bordes directamente, porque puede haber una situación en la que originalmente era un número negativo, pero se puede agregar a un número positivo por otros puntos, por lo que debe revertir la construcción del borde y usar DFS para preprocesar el peso máximo que cada punto puede obtener, y luego seguir La primera idea es construir bordes y, finalmente, la clasificación topológica es suficiente.

Codigo aceptado

#pragma GCC optimize(3)
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;

#define sc scanf
#define ls rt << 1
#define rs ls | 1
#define Min(x, y) x = min(x, y)
#define Max(x, y) x = max(x, y)
#define ALL(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define pir pair <int, int>
#define MK(x, y) make_pair(x, y)
#define MEM(x, b) memset(x, b, sizeof(x))
#define MPY(x, b) memcpy(x, b, sizeof(x))
#define lowbit(x) ((x) & -(x))
#define P2(x) ((x) * (x))

typedef long long ll;
const int Mod = 1e9 + 7;
const int N = 2e5 + 100;
const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3f;
inline ll dpow(ll a, ll b){ ll r = 1, t = a; while (b){ if (b & 1)r = (r*t) % Mod; b >>= 1; t = (t*t) % Mod; }return r; }
inline ll fpow(ll a, ll b){ ll r = 1, t = a; while (b){ if (b & 1)r = (r*t); b >>= 1; t = (t*t); }return r; }

vector <int> G[N], g[N];
int in[N], b[N], n;
ll a[N], dp[N];
bool vis[N];

void DFS(int x) {
	dp[x] = a[x];
	vis[x] = true;
	for (auto v : g[x]) {
		if (!vis[v])
			DFS(v);
		if (dp[v] > 0)
			dp[x] += dp[v];
	}
}
void Topsort() {
	queue <int> q;
	for (int i = 1; i <= n; i++) {
		if (!in[i])
			q.push(i);
	}

	ll ans = 0;
	vector <int> vec;

	while (!q.empty()) {
		int u = q.front();
		q.pop();

		vec.push_back(u);
		ans += a[u];

		if (b[u] != -1)
			a[b[u]] += a[u];

		for (auto v : G[u]) {
			in[v]--;
			if (!in[v])
				q.push(v);
		}
	}

	printf("%lld\n", ans);
	for (auto v : vec)
		printf("%d ", v);
	puts("");
}

int main()
{
	cin >> n;
	for (int i = 1; i <= n; i++)
		sc("%lld", &a[i]);
	for (int i = 1; i <= n; i++) {
		sc("%d", &b[i]);
		if (b[i] != -1)
			g[b[i]].push_back(i);
	}

	for (int i = 1; i <= n; i++) 
		if (!vis[i])
			DFS(i);

	for (int i = 1; i <= n; i++) {
		if (b[i] == -1)
			continue;
		if (dp[i] > 0)
			G[i].push_back(b[i]), in[b[i]]++;
		else if (dp[i] < 0)
			G[b[i]].push_back(i), in[i]++;
	}

	Topsort();
	return 0;  // 改数组大小!!!用pair记得改宏定义!!!
}

 

Supongo que te gusta

Origin blog.csdn.net/weixin_43851525/article/details/107823913
Recomendado
Clasificación