답안 #787121

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
787121 2023-07-18T20:47:44 Z stefanneagu Intercastellar (JOI22_ho_t1) C++17
컴파일 오류
0 ms 0 KB
#include <iostream>
#include <algorithm>
#define int long long

using namespace std;

const int nmax = 2e5 + 1;

struct numar {
    int val, i;
} ax[nmax];

bool cmp(numar a, numar b) {
    return a.val < b.val;
}

int check(int x) {
    int cnt = 0;
    while(x % 2 == 0) {
        cnt ++;
        x /= 2;
    }
    return cnt;
}

int ans[nmax], v[nmax];

int main() {
    int n;
    cin >> n;
    for(int i = 1; i <= n; i ++) {
        cin >> v[i];
    }
    int q;
    cin >> q;
    for(int i = 1; i <= q; i ++) {
        cin >> ax[i].val;
        ax[i].i = i;
    }
    sort(ax + 1, ax + q + 1, cmp);
    int curr = 0, ult = 0, an = 1;
    for(int i = 1; i <= n; i ++) {
        if(an == q + 1) {
            break;
        }
        ult = curr;
        curr ++;
        ult ++;
        int x = check(v[i]);
        curr += (1 << x) - 1;
        if(ult <= ax[an].val && ax[an].val <= curr) {
            ans[ax[an].i] = v[i] / (1 << x);
            an ++;
            i --;
            curr -= (1 << x);
            ult --;
        } 
    }
    for(int i = 1; i <= q; i ++) {
        cout << ans[i] << "\n";
    }
    return 0;
}

Compilation message

cc1plus: error: '::main' must return 'int'