Submission #1361689

#TimeUsernameProblemLanguageResultExecution timeMemory
1361689UnforgettableplMulti Communication 2 (JOI26_multi)C++20
0 / 100
14 ms940 KiB
#include "multi.h"
#include <bits/stdc++.h>
using namespace std;

#define int long long

vector<unsigned long long> strategy(int32_t N,
      int32_t r,int32_t i,
      vector<unsigned long long> A,
      vector<unsigned long long> B){
    int gameState = B[0];
    if(gameState==0){
        gameState = 1;
    } else {
        pair<int,int> ans = {(1ll<<50),0ll};
        for(int x=1;x<N;x++){
            if(gameState&(1ll<<x))continue;
            ans = min(ans,{B[x],x});
        }
        gameState|=(1ll<<ans.second);
    }
    auto staticReturner = [&](int x){
        return vector<unsigned long long>(N,x);
    };
    if(i==0){
        // orchastrator
        int full = (1ll<<N)-1ll;
        if(gameState==full){
            int ans = 0;
            for(int x=1;x<N;x++)ans+=B[x];
            return {(unsigned int)ans};
        }
        return staticReturner(gameState);
    } else {
        if(gameState&(1ll<<i))return staticReturner(B[i]);
        unsigned int myMin = (1ll<<50);
        for(int x=0;x<N;x++)if(gameState&(1ll<<x)){
            myMin = min(myMin,A[x]);
        }
        return staticReturner(myMin);
    }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...