답안 #915464

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
915464 2024-01-24T02:47:25 Z guagua0407 Minerals (JOI19_minerals) C++17
70 / 100
26 ms 3140 KB
#include "minerals.h"
#include<bits/stdc++.h>
using namespace std;
#define f first
#define s second

vector<int> a;
vector<int> belong;
vector<pair<int,int>> vec;

void go(int l,int r,vector<int> &b,int id){
    if(l==r){
        Query(a[l]);
        assert((int)b.size()==1);
        vec.push_back({a[l],b[0]});
        return;
    }
    int mid=(l+r)/2;
    int cur=0;
    if(id==0){
        for(int i=l;i<=mid;i++){
            cur=Query(a[i]);
        }
    }
    else{
        for(int i=mid+1;i<=r;i++){
            cur=Query(a[i]);
        }
    }
    vector<int> ls,rs;
    for(auto v:b){
        if(belong[v]<=mid){
            ls.push_back(v);
            continue;
        }
        int x=Query(v);
        if(x==cur){
            ls.push_back(v);
        }
        else{
            rs.push_back(v);
        }
        cur=x;
    }
    vector<int>().swap(b);
    go(l,mid,ls,1);
    go(mid+1,r,rs,0);
}

void Solve(int n){
    vector<bool> ok(2*n+1);
    int prv=0;
    vector<int> ord(2*n+1);
    for(int i=1;i<=2*n;i++){
        ord[i]=i;
    }
    random_shuffle(ord.begin()+1,ord.end());
    for(int t=1;t<=2*n;t++){
        int i=ord[t];
        int x=Query(i);
        if(x==prv+1){
            ok[i]=true;
        }
        prv=x;
    }
    vector<int> b;
    int cnt=-1;
    belong.resize(2*n+1);
    for(int t=1;t<=2*n;t++){
        int i=ord[t];
        if(ok[i]){
            a.push_back(i);
            cnt++;
        }
        else{
            b.push_back(i);
            belong[i]=cnt;
        }
    }
    go(0,n-1,b,1);
    for(auto v:vec){
        Answer(v.f,v.s);
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Correct 1 ms 344 KB Output is correct
3 Correct 2 ms 600 KB Output is correct
4 Correct 4 ms 1112 KB Output is correct
5 Correct 9 ms 1328 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 2 ms 600 KB Output is correct
8 Correct 4 ms 1112 KB Output is correct
9 Correct 9 ms 1328 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 6 ms 1032 KB Output is correct
12 Correct 9 ms 1432 KB Output is correct
13 Correct 12 ms 1512 KB Output is correct
14 Correct 9 ms 1464 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 2 ms 600 KB Output is correct
8 Correct 4 ms 1112 KB Output is correct
9 Correct 9 ms 1328 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 6 ms 1032 KB Output is correct
12 Correct 9 ms 1432 KB Output is correct
13 Correct 12 ms 1512 KB Output is correct
14 Correct 9 ms 1464 KB Output is correct
15 Correct 25 ms 3124 KB Output is correct
16 Correct 24 ms 3140 KB Output is correct
17 Correct 24 ms 3028 KB Output is correct
18 Correct 23 ms 3008 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 2 ms 600 KB Output is correct
8 Correct 4 ms 1112 KB Output is correct
9 Correct 9 ms 1328 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 6 ms 1032 KB Output is correct
12 Correct 9 ms 1432 KB Output is correct
13 Correct 12 ms 1512 KB Output is correct
14 Correct 9 ms 1464 KB Output is correct
15 Correct 25 ms 3124 KB Output is correct
16 Correct 24 ms 3140 KB Output is correct
17 Correct 24 ms 3028 KB Output is correct
18 Correct 23 ms 3008 KB Output is correct
19 Incorrect 26 ms 2864 KB Wrong Answer [2]
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 2 ms 600 KB Output is correct
8 Correct 4 ms 1112 KB Output is correct
9 Correct 9 ms 1328 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 6 ms 1032 KB Output is correct
12 Correct 9 ms 1432 KB Output is correct
13 Correct 12 ms 1512 KB Output is correct
14 Correct 9 ms 1464 KB Output is correct
15 Correct 25 ms 3124 KB Output is correct
16 Correct 24 ms 3140 KB Output is correct
17 Correct 24 ms 3028 KB Output is correct
18 Correct 23 ms 3008 KB Output is correct
19 Incorrect 26 ms 2864 KB Wrong Answer [2]
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 2 ms 600 KB Output is correct
8 Correct 4 ms 1112 KB Output is correct
9 Correct 9 ms 1328 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 6 ms 1032 KB Output is correct
12 Correct 9 ms 1432 KB Output is correct
13 Correct 12 ms 1512 KB Output is correct
14 Correct 9 ms 1464 KB Output is correct
15 Correct 25 ms 3124 KB Output is correct
16 Correct 24 ms 3140 KB Output is correct
17 Correct 24 ms 3028 KB Output is correct
18 Correct 23 ms 3008 KB Output is correct
19 Incorrect 26 ms 2864 KB Wrong Answer [2]
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 2 ms 600 KB Output is correct
8 Correct 4 ms 1112 KB Output is correct
9 Correct 9 ms 1328 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 6 ms 1032 KB Output is correct
12 Correct 9 ms 1432 KB Output is correct
13 Correct 12 ms 1512 KB Output is correct
14 Correct 9 ms 1464 KB Output is correct
15 Correct 25 ms 3124 KB Output is correct
16 Correct 24 ms 3140 KB Output is correct
17 Correct 24 ms 3028 KB Output is correct
18 Correct 23 ms 3008 KB Output is correct
19 Incorrect 26 ms 2864 KB Wrong Answer [2]
20 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 596 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 1 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 1 ms 344 KB Output is correct
6 Correct 1 ms 344 KB Output is correct
7 Correct 2 ms 600 KB Output is correct
8 Correct 4 ms 1112 KB Output is correct
9 Correct 9 ms 1328 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 6 ms 1032 KB Output is correct
12 Correct 9 ms 1432 KB Output is correct
13 Correct 12 ms 1512 KB Output is correct
14 Correct 9 ms 1464 KB Output is correct
15 Correct 25 ms 3124 KB Output is correct
16 Correct 24 ms 3140 KB Output is correct
17 Correct 24 ms 3028 KB Output is correct
18 Correct 23 ms 3008 KB Output is correct
19 Incorrect 26 ms 2864 KB Wrong Answer [2]
20 Halted 0 ms 0 KB -