| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
Did you initialize array answer[...]?In Reply To:Plz help me WA :( Posted by:insany at 2006-03-14 19:48:05 Sorry if this is not the reason.
And you didn't show the code of RBTree, so I have no idea in that way.
:)
>
> I used my RedBlack tree to solve it,
> but WA T.T
>
> There is any critical input data for my source?
> (assume my RBTree class is right.. I tested it several times...)
>
>
>
> int n, m;
> int a[100000];
> struct query {
> int num;
> int l, r, rank;
> };
> bool operator < (const query& a, const query& b)
> {
> if (a.l == b.l) {
> return (a.r < b.r);
> }
> return (a.l < b.l);
> }
> query q[50000];
> int answer[50000];
>
> int main()
> {
> scanf("%d%d", &n, &m);
> for (int i = 0; i < n; i++) {
> scanf("%d", &a[i]);
> }
>
> for (int i = 0; i < m; i++) {
> scanf("%d%d%d", &q[i].l, &q[i].r, &q[i].rank);
> if (q[i].l > q[i].r) {
> int temp = q[i].l; q[i].l = q[i].r; q[i].r = temp;
> }
> q[i].l--, q[i].r--;
> q[i].num = i;
> //printf("%d %d %d\n", q[i].l, q[i].r, q[i].rank);
> }
> sort(q, q + m);
>
> RedBlack rb;
>
> for (int i = q[0].l; i <= q[0].r; i++) {
> rb.insert(a[i]);
> }
> answer[q[0].num] = rb.rank(q[0].rank);
>
> for (int i = 1; i < m; i++) {
> if (q[i - 1].r >= q[i].r) {
> (* (int *)0) = 0;
> }
> if (q[i - 1].r < q[i].l) {
> for (int j = q[i - 1].l; j <= q[i - 1].r; j++) rb.erase(a[j]);
> for (int j = q[i].l; j <= q[i].r; j++) rb.insert(a[j]);
> }
> else {
> for (int j = q[i - 1].l; j < q[i].l; j++) rb.erase(a[j]);
> for (int j = q[i - 1].r + 1; j <= q[i].r; j++) rb.insert(a[j]);
> }
> answer[q[i].num] = rb.rank(q[i].rank);
> }
>
> for (int i = 0; i < m; i++) {
> printf("%d\n", answer[i]);
> }
>
> return 0;
> }
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator