我好菜,悬赏一个关注
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define INF32_MAX 2147483647
inline int read()
{
int x = 0, f = 1;
char ch = getchar();
while (ch < '0' || ch > '9')
{
if (ch == '-')
f = -1;
ch = getchar();
}
while (ch >= '0' && ch <= '9')
{
x = x * 10 + ch - 48;
ch = getchar();
}
return x * f;
}
const int N = 2e6;
int n, m;
struct part
{
int a, b, id;
bool operator<(const part &B) const
{
return b < B.b;
}
} arr[N];
struct actor
{
int a, b, c, id;
bool operator<(const actor &B) const
{
return a < B.a;
}
} crr[N];
int num[N];
signed main()
{
n = read();
for (int i = 1, a, b; i <= n; i++)
a = read(), b = read(),
arr[i] = {a, b, i};
sort(arr + 1, arr + n + 1);
m = read();
for (int i = 1, c, d, k; i <= m; i++)
c = read(), d = read(), k = read(),
crr[i] = {c, d, k, i};
sort(crr + 1, crr + m + 1);
int sum = 0;
for (int i = 1; i <= n; i++)
{
bool flag = false;
for (int j = 1; j <= m; j++)
{
if (crr[j].a > arr[i].a)
break;
if (crr[j].c == 0)
continue;
if (arr[i].b > crr[j].b)
continue;
num[arr[i].id] = crr[j].id;
crr[j].c--;
sum++;
flag = true;
break;
}
if (!flag)
{
cout << "NO"
<< "\n";
exit(0);
}
}
cout << "YES"
<< "\n";
for (int i = 1; i <= n; i++)
cout << num[i] << " ";
return 0;
}