제출 #1210701

#제출 시각아이디문제언어결과실행 시간메모리
1210701qwusha죄수들의 도전 (IOI22_prison)C++20
0 / 100
0 ms324 KiB
#include <bits/stdc++.h>
#include "prison.h"
using namespace std;
#define fi first
#define se second
typedef long long ll;
typedef long double ld;
mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
ll inf = 1e18;

vector<vector<int>> devise_strategy(int n) {
    vector<vector<int>> s(40, vector<int>(n + 1));
    for (int val = 0; val < 40; val++) {
        if (val % 3 == 0) {
            s[val][0] = 0;
            for (int x = 1; x <= n; x++) {
                int l = 1, r = 5001;
                int done = val / 3;
                for (int i = 0; i < done + 1; i++) {
                    int mid = (l + r) / 2;
                    if (i == done) {
                        if (x < mid) {
                            s[val][x] = 3 * done + 1;
                        } else {
                            s[val][x] = 3 * done + 2;
                        }
                    } else {
                        if (x < mid) {
                            r = mid;
                        } else {
                            l = mid;
                        }
                    }
                }
            }
        } else {
            s[val][0] = 1;
            for (int x = 1; x <= n; x++) {
                int l = 1, r = 5001;
                int done = val / 3;
                int typ = val % 3;
                s[val][x] = (done + 1) * 3;
                for (int i = 0; i < done + 1; i++) {
                    int mid = (l + r) / 2;
                    if (i == done) {
                        if (x < mid) {
                            if (typ == 2) {
                                s[val][x] = -2;
                            }
                        } else {
                            if (typ == 1) {
                                s[val][x] = -1;
                            }
                        }
                    } else {
                        if (x < mid) {
                            r = mid;
                        } else {
                            l = mid;
                        }
                    }
                }
            }

        }
    }
    return s;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...