两侧覆盖问题解(二)
j];}
bool bigger2(int i, int j) {return rr[i] < rr[j];}
int main()
{
freopen("aut.in", "r", stdin);
freopen("aut.out", "w", stdout);
scanf("%d%d", &n, &m);
int i; www.2cto.com
FOR(i, 1, m) scanf("%d%d", ll + i, rr + i), p[i] = i;
ll[0] = oo, rr[0] = -oo;
root = build(1, n);
sort(p + 1, p + m + 1, bigger1);
FOR(i, 1, m) insertx(p[i]);
sort(p + 1, p + m + 1, bigger2);
FOR(i, 1, m) inserty(p[i]);
FOR(i, 1, m) if (!c[i]) bfs(i);
FOR(i, 1, m) puts(c[i] < 0 "N" : "S");
return 0;
}