QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#136625 | #237. Triangle Partition | S_Explosion# | 100 ✓ | 2ms | 3628kb | C++20 | 1.0kb | 2023-08-09 09:27:08 | 2023-08-09 09:27:10 |
Judging History
answer
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#include <string>
#include <unordered_map>
#include <cmath>
#include <assert.h>
#include <map>
#include <set>
#include <utility>
template <typename Tp>
inline void read(Tp &x) {
x = 0;
bool f = true; char ch = getchar();
for ( ; ch < '0' || ch > '9'; ch = getchar()) f ^= ch == '-';
for ( ; ch >= '0' && ch <= '9'; ch = getchar()) x = x * 10 + (ch ^ 48);
x = f ? x : -x;
}
const int N = 3e3;
struct Point {
int x, y, id;
bool operator < (const Point &s) const {
return (x == s.x) ? y < s.y : x < s.x;
}
};
Point p[N + 5];
int main() {
int T;
read(T);
while (T--) {
int n;
read(n);
for (int i = 1; i <= 3 * n; ++i) read(p[i].x), read(p[i].y), p[i].id = i;
std::sort(p + 1, p + 3 * n + 1);
for (int i = 1; i <= n; ++i) printf("%d %d %d\n", p[i * 3 - 2].id, p[i * 3 - 1].id, p[i * 3].id);
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 2ms
memory: 3628kb
input:
190 10 -7215 2904 -5179 1663 -542 1091 -5687 7868 7838 -1048 -2944 4346 -2780 3959 -9402 1099 -8548 -7238 -3821 -2917 2713 295 -856 -8661 7651 3945 -8216 -543 5798 5024 8583 -3384 -1208 5955 3068 -385 340 2968 6559 -272 4537 5075 5126 4343 639 8281 1700 2572 819 9317 -9854 -1316 -3421 -1137 9368 718...
output:
26 8 9 14 29 1 4 2 10 27 6 7 17 12 3 19 23 25 24 11 18 21 22 15 20 30 13 5 16 28 30 3 18 29 5 17 12 11 27 15 19 10 28 25 9 24 7 13 6 8 23 14 22 2 20 4 16 26 21 1 6 11 16 8 27 10 13 15 14 29 22 19 9 2 18 24 12 20 1 26 4 5 30 7 3 25 23 17 21 28 16 8 18 19 23 13 7 26 24 3 1 5 29 25 27 9 6 15 12 22 14 1...
result:
ok AC