제출 #1356436

#제출 시각아이디문제언어결과실행 시간메모리
1356436toast12Coreputer (IOI23_coreputer)C++20
40 / 100
0 ms412 KiB
#include "coreputer.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> malfunctioning_cores(int N) {
	vector<int> ans(N, -1);
    int lo = 0, hi = N-1;
    int x = 0;
    while (lo < hi) {
        int mid = (lo+hi)/2;
        vector<int> v;
        for (int i = 0; i <= mid; i++) v.push_back(i);
        int res = run_diagnostic(v);
        if (res == -1) lo = mid+1;
        else hi = mid, x = res;
        v.clear();
    }
    ans[hi] = 1;
    int mx = N-hi-1;
    vector<int> v;
    for (int i = hi+1; i < N; i++) v.push_back(i);
    for (int i = 0; i < hi; i++) {
        if (!mx) break;
        v.push_back(i);
        int res = run_diagnostic(v);
        if (res > 0) {
            ans[i] = 1;
            mx--;
        }
        else ans[i] = 0;
        v.pop_back();
    }
    v.clear();
    for (int i = hi+1; i < N-1; i++) {
        for (int j = hi; j < N; j++) {
            if (j != i) v.push_back(j);
        }
        int res = run_diagnostic(v);
        if (res > 0) ans[i] = 0;
        else ans[i] = 1;
        v.clear();
    }
    int a = 0, b = 0;
    for (int i = 0; i <= hi; i++) a += ans[i];
    for (int i = hi+1; i < N-1; i++) b += ans[i];
    if (a-b != x) ans[N-1] = 1;
    else ans[N-1] = 0;
    return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…