estructura de la violencia

Entrenamiento 2 - Denominación D

Chiaki tiene puntos 3n3n p1, p2, ..., p3np1, p2, ..., P3N. Se garantiza que no hay tres puntos están alineados.

Chiaki le gustaría construir nn disjuntos triángulos donde cada vértice viene de los puntos 3n3n.

Entrada

Existen múltiples casos de prueba. La primera línea de entrada contiene un número entero TT, que indica el número de casos de prueba. Para cada caso de prueba:

La primera línea contiene un número entero nn (1≤n≤10001≤n≤1000) - el número de triángulo para constructo.

Cada una de las siguientes líneas 3n3n contiene dos números enteros xixi y yiyi (-109≤xi, yi≤109-109≤xi, yi≤109).

Se garantiza que la suma de todos nn no exceda 1000010000.

Salida

Para cada caso de prueba, la salida nn líneas contiene tres enteros ai, bi, CIAI, bi, ci (1≤ai, bi, ci≤3n1≤ai, bi, ci≤3n) cada denota los índices de los puntos de la ii-ésimo triángulo utilizar. Si hay varias soluciones, se puede dar salida a ninguno de ellos.

Ejemplo de entrada

1
1
1 2
2 3
3 5

Ejemplo de salida

1 2 3


#pragma warning (disable:4996)
#include <iostream>
#include <algorithm>
#include <iomanip>
#include <cstring>
#include <string>
#include <cstdio>
#include <cmath>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#define inf 0X3f3f3f3f
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 3e3 + 5;

struct Node
{
	int x;
	int y;
	int num;
	Node(int xx, int yy, int n)
	{
		x = xx;
		y = yy;
		num = n;
	}
	friend bool operator<(Node a, Node b)
	{
		if (a.x == b.x)
			return a.y < b.y;
		return a.x < b.x;
	}
};
vector<Node> v;

int main()
{
	int T;
	scanf("%d", &T);
	while (T--)
	{
		int n;
		scanf("%d", &n);
		for (int i = 1; i <= 3 * n; i++)
		{
			int a, b;
			scanf("%d%d", &a, &b);
			v.push_back(Node(a, b, i));
		}
		sort(v.begin(), v.end());
		int i = 1, j = 2, k = 3;
		for (int i = 0; i < 3 * n; i += 3)
		{
			for (int j = 0; j < 3; j++)
				printf("%d ", v[i + j].num);
			printf("\n");
		}
		while (v.size())
			v.pop_back();
	}
}

Idea:
Después de ordenar la salida simple no puede juzgar la violencia.

Publicado 28 artículos originales · ganado elogios 0 · Vistas 331

Supongo que te gusta

Origin blog.csdn.net/xukeke12138/article/details/104642301
Recomendado
Clasificación