Submission #1016034

# Submission time Handle Problem Language Result Execution time Memory
1016034 2024-07-07T10:05:33 Z amine_aroua Magic Show (APIO24_show) C++17
0 / 100
2 ms 1068 KB
#include <bits/stdc++.h>
#include "Alice.h"
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().
const int N = 4976;
const int CNT = (N - 1)/25;
vector<int> bits[25];

std::vector<std::pair<int,int>> Alice(){
    mt19937 rng(1313);
	vector<int> perm;
    for(int i = 2 ; i <= N ; i++)
        perm.push_back(i);
    shuffle(perm.begin() , perm.end() , rng);
    for(int i = 0 ; i < 25 ; i++)
    {
        for(int j = i * CNT ; j < (i + 1) * CNT ; j++)
        {
            bits[i].push_back(perm[j]);
        }
    }
    long long X = setN(N);
    vector<pair<int ,int>> vp;
    int b = 0;
    for(int i = 0 ; i < 25 ; i++)
    {
        if((1<<i) & X)
        {
            b = i;
            for(auto j : bits[i])
                vp.push_back({1 , j});
        }
    }
    for(int i =0 ; i < 25 ; i++)
    {
        if((1<<i) & X)
            continue;
        for(auto j : bits[i])
        {
            vp.push_back({bits[b].back() , j});
        }
    }
    shuffle(vp.begin() , vp.end() , mt19937(chrono::steady_clock::now().time_since_epoch().count()));
    return vp;
}
//int main()
//{
//    Alice();
//}
#include <bits/stdc++.h>
#include "Bob.h"
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().
const int N = 4976;
const int CNT = (N - 1)/25;
int label[N + 1];

long long Bob(std::vector<std::pair<int,int>> V){
	// add your code here
    mt19937 rng(1313);
    vector<int> perm;
    for(int i = 2 ; i <= N ; i++)
        perm.push_back(i);
    shuffle(perm.begin() , perm.end() , rng);
    for(int i = 0 ; i < 25 ; i++)
    {
        for(int j = i * CNT ; j < (i + 1) * CNT ; j++)
        {
            label[perm[j]] = i;
        }
    }
    long long X = 0;
    for(auto [a , b] : V)
    {
        if(a == 1 || b == 1)
        {
            X|=(1ll<<label[max(a , b)]);
        }
    }
    return X;
}
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1068 KB Correct.
2 Incorrect 1 ms 1064 KB Incorrect answer.
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1068 KB Correct.
2 Incorrect 1 ms 1064 KB Incorrect answer.
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 2 ms 1068 KB Correct.
2 Incorrect 1 ms 1064 KB Incorrect answer.
3 Halted 0 ms 0 KB -