Submission #156354

# Submission time Handle Problem Language Result Execution time Memory
156354 2019-10-05T09:59:59 Z georgerapeanu Xylophone (JOI18_xylophone) C++11
11 / 100
119 ms 504 KB
#include "xylophone.h"

using namespace std;

static int a[5005];

void get_val(int st,int dr,int st_val,int dr_val,int target_val,bool mode){
    if(st == dr){
        return ;
    }

    int l = st,r = dr;
    
    if(st_val != -1){
        while(r - l > 1){
            int mid = (l + r) / 2;
            if(query(st,mid) < target_val){
                l = mid;
            }
            else{
                r = mid;
            }
        }
        a[r] = st_val + (mode == false ? -1:1) * target_val;
        get_val(st + 1,r,-1,a[r],query(st + 1,r),!mode);
        get_val(r,dr,a[r],-1,query(r,dr),!mode);
    }
    else{
        while(r - l > 1){
            int mid = (l + r) / 2;
            if(query(mid,dr) < target_val){
                r = mid;
            }
            else{
                l = mid;
            }
        }
        a[l] = dr_val + (mode == false ? -1:1) * target_val;
        get_val(st,l,-1,a[l],query(st,l),!mode);
        get_val(l,dr - 1,a[l],-1,query(l,dr - 1),!mode);
    }
}
void solve(int n) {

    int l = 1,r = n;

    while(r - l > 1){
        int mid = (l + r) / 2;
        if(query(1,mid) == n - 1){
            r = mid;
        }
        else{
            l = mid;
        }
    }

    int pos_n = r;
    a[pos_n] = n;

    get_val(1,pos_n,-1,n,query(1,pos_n),false);
    get_val(pos_n,n,n,-1,query(pos_n,n),false);

    for(int i = 1;i <= n;i++){
        answer(i,a[i]);
    }
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 3 ms 248 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 6 ms 304 KB Output is correct
6 Correct 7 ms 248 KB Output is correct
7 Correct 4 ms 276 KB Output is correct
8 Correct 7 ms 248 KB Output is correct
9 Correct 10 ms 248 KB Output is correct
10 Correct 10 ms 248 KB Output is correct
11 Correct 7 ms 248 KB Output is correct
12 Correct 4 ms 248 KB Output is correct
13 Correct 6 ms 376 KB Output is correct
14 Correct 6 ms 248 KB Output is correct
15 Correct 4 ms 248 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 3 ms 248 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 6 ms 304 KB Output is correct
6 Correct 7 ms 248 KB Output is correct
7 Correct 4 ms 276 KB Output is correct
8 Correct 7 ms 248 KB Output is correct
9 Correct 10 ms 248 KB Output is correct
10 Correct 10 ms 248 KB Output is correct
11 Correct 7 ms 248 KB Output is correct
12 Correct 4 ms 248 KB Output is correct
13 Correct 6 ms 376 KB Output is correct
14 Correct 6 ms 248 KB Output is correct
15 Correct 4 ms 248 KB Output is correct
16 Correct 9 ms 376 KB Output is correct
17 Correct 22 ms 248 KB Output is correct
18 Correct 18 ms 296 KB Output is correct
19 Correct 18 ms 504 KB Output is correct
20 Correct 47 ms 256 KB Output is correct
21 Correct 41 ms 300 KB Output is correct
22 Correct 52 ms 248 KB Output is correct
23 Incorrect 119 ms 436 KB Wrong Answer [2]
24 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 3 ms 248 KB Output is correct
4 Correct 5 ms 376 KB Output is correct
5 Correct 6 ms 304 KB Output is correct
6 Correct 7 ms 248 KB Output is correct
7 Correct 4 ms 276 KB Output is correct
8 Correct 7 ms 248 KB Output is correct
9 Correct 10 ms 248 KB Output is correct
10 Correct 10 ms 248 KB Output is correct
11 Correct 7 ms 248 KB Output is correct
12 Correct 4 ms 248 KB Output is correct
13 Correct 6 ms 376 KB Output is correct
14 Correct 6 ms 248 KB Output is correct
15 Correct 4 ms 248 KB Output is correct
16 Correct 9 ms 376 KB Output is correct
17 Correct 22 ms 248 KB Output is correct
18 Correct 18 ms 296 KB Output is correct
19 Correct 18 ms 504 KB Output is correct
20 Correct 47 ms 256 KB Output is correct
21 Correct 41 ms 300 KB Output is correct
22 Correct 52 ms 248 KB Output is correct
23 Incorrect 119 ms 436 KB Wrong Answer [2]
24 Halted 0 ms 0 KB -