QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#590513#8726. Magic ShowisirazeevCompile Error//C++202.1kb2024-09-26 01:20:462024-09-26 01:20:46

Judging History

你现在查看的是最新测评结果

  • [2024-09-26 01:20:46]
  • 评测
  • [2024-09-26 01:20:46]
  • 提交

Alice

#include <vector>
#include "Alice.h"
#include <algorithm>
#include <random>

using namespace std;

// you may define some global variables, but it does not work if you try to transfer any information from function Alice() to function Bob() through these variables.
// you had better not use the same global variables in function Alice() and in function Bob().

mt19937 rnd(INT_MAX);

std::vector<std::pair<int,int>> Alice(){
    const int N = 61 * 40 + 61;
    long long x = setN(N);
    vector<pair<int, int>> edges;
    int cnt[N + 1];
    for(int i = 0; i <= N; i++) cnt[i] = 0;
    for(long long bit = 0; bit <= 60; bit++){
        if(((x >> bit) & 1) == 1){
            for(int j = 62 + bit * 40; j < 62 + (bit + 1) * 40; j++){
                pair<int, int> v = {bit + 1, j};
                if(rnd() % 2 == 0) swap(v.first, v.second);
                edges.emplace_back(v);
                cnt[j]++;
            }
        }
    }
    vector<int> v;
    for(int i = 62; i <= N; i++){
        if(cnt[i] == 0)
            v.emplace_back(i);
    }
    int non_zero = 0;
    for(int i = 62; i <= N; i++){
        if(cnt[i] != 0)
            non_zero = i;
    }
    for(int i = 1; i < 61; i++){
        edges.emplace_back(i, i + 1);
    }
    for(int i : v){
        edges.emplace_back(i, non_zero);
    }
    for(int i = 0; i < N; i++)
        random_shuffle(edges.begin(), edges.end());
    return edges;
}

Bob

#include <vector>
#include "Bob.h"

using namespace std;

long long Bob(std::vector<std::pair<int,int>> V){
    const int N = 61 * 40 + 61;
    int cnt[N + 1];
    for(int i = 0; i <= N; i++) cnt[i] = 0;
    for(int i = 1; i < (int)V.size(); i++){
        pair<int, int> p = V[i];
        int dif = p.first - p.second;
        if(dif < 0) dif = -dif;
        if(!(dif == 1 && max(p.first, p.second) <= 61))
            cnt[p.first]++, cnt[p.second]++;
    }
    long long res = 0;
    for(int i = 1; i <= 61; i++){
        int bit = i - 1;
        if(cnt[i] > 0)
            res += (1ll << bit);
    }
    return res;
}

Details

Alice.code:11:13: error: ‘INT_MAX’ was not declared in this scope
   11 | mt19937 rnd(INT_MAX);
      |             ^~~~~~~
Alice.code:5:1: note: ‘INT_MAX’ is defined in header ‘<climits>’; did you forget to ‘#include <climits>’?
    4 | #include <random>
  +++ |+#include <climits>
    5 |