Submission #1159448

#TimeUsernameProblemLanguageResultExecution timeMemory
1159448PacybwoahBroken Device (JOI17_broken_device)C++20
85 / 100
22 ms1608 KiB
#include "Annalib.h"
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
typedef long long ll;
namespace{
    vector<vector<int>> vec = {{118, 114}, {116, 28}, {145, 46}, {8, 82}, {26, 37}, {141, 0}, {16, 85}, {147, 73}, {6, 109}, {63, 56}, {64, 121}, {98, 23}, {70, 80}, {22, 19}, {50, 60}, {27, 7}, {71, 146}, {17, 99}, {97, 107}, {76, 90}, {32, 18}, {105, 92}, {12, 69}, {132, 30}, {40, 15}, {131, 62}, {87, 142}, {136, 9}, {44, 33}, {41, 2}, {36, 45}, {148, 1}, {139, 5}, {106, 20}, {21, 83}, {93, 68}, {138, 101}, {11, 79}, {104, 86}, {13, 14}, {67, 42}, {124, 125}, {130, 65}, {112, 89}, {95, 100}, {75, 102}, {126, 4}, {31, 88}, {129, 96}, {52, 120}, {25, 110}, {119, 149}, {74, 111}, {81, 48}, {51, 135}, {38, 113}, {35, 10}, {134, 77}, {61, 78}, {57, 72}, {123, 94}, {43, 137}, {34, 53}, {66, 29}, {54, 3}, {39, 128}, {143, 103}, {59, 108}, {84, 47}, {58, 144}, {122, 115}, {49, 117}, {127, 140}, {91, 24}, {133, 55}};
}
void Anna(int n, ll x, int k, int p[]){
    vector<int> ok(n, 1);
    for(int i = 0; i < k; i++) ok[p[i]] = 0;
    vector<int> tri;
    while(x > 0){
        tri.push_back(x % 3);
        x /= 3;
    }
    int now = 0, sz = (int)tri.size();
    for(int i = 0; i < n / 2; i++){
        if(ok[vec[i][0]] && ok[vec[i][1]]){
            if(now >= sz){
                Set(vec[i][0], 0);
                Set(vec[i][1], 0);
            }
            else{
                // 01 10 11
                if(tri[now] == 0){
                    Set(vec[i][0], 0);
                    Set(vec[i][1], 1);
                }
                else if(tri[now] == 1){
                    Set(vec[i][0], 1);
                    Set(vec[i][1], 0);
                }
                else{
                    Set(vec[i][0], 1);
                    Set(vec[i][1], 1);
                }
                now++;
            }
        }
        else{
            Set(vec[i][0], 0);
            Set(vec[i][1], 0);
        }
    }
}
#include "Brunolib.h"
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
namespace{
    vector<vector<int>> vec = {{118, 114}, {116, 28}, {145, 46}, {8, 82}, {26, 37}, {141, 0}, {16, 85}, {147, 73}, {6, 109}, {63, 56}, {64, 121}, {98, 23}, {70, 80}, {22, 19}, {50, 60}, {27, 7}, {71, 146}, {17, 99}, {97, 107}, {76, 90}, {32, 18}, {105, 92}, {12, 69}, {132, 30}, {40, 15}, {131, 62}, {87, 142}, {136, 9}, {44, 33}, {41, 2}, {36, 45}, {148, 1}, {139, 5}, {106, 20}, {21, 83}, {93, 68}, {138, 101}, {11, 79}, {104, 86}, {13, 14}, {67, 42}, {124, 125}, {130, 65}, {112, 89}, {95, 100}, {75, 102}, {126, 4}, {31, 88}, {129, 96}, {52, 120}, {25, 110}, {119, 149}, {74, 111}, {81, 48}, {51, 135}, {38, 113}, {35, 10}, {134, 77}, {61, 78}, {57, 72}, {123, 94}, {43, 137}, {34, 53}, {66, 29}, {54, 3}, {39, 128}, {143, 103}, {59, 108}, {84, 47}, {58, 144}, {122, 115}, {49, 117}, {127, 140}, {91, 24}, {133, 55}};
}
typedef long long ll;
long long Bruno(int n, int a[]){
    ll ans = 0, now = 1;
    for(int i = 0; i < n / 2; i++){
        if(a[vec[i][0]] == 0 && a[vec[i][1]] == 0) continue;
        else{
            // 01 10 11
            if(a[vec[i][0]] == 1 && a[vec[i][1]] == 0) ans += now * 1;
            else if(a[vec[i][0]] == 1 && a[vec[i][1]] == 1) ans += now * 2;
            now *= 3;
        }
    }
    return ans;
}
// g++ -g -std=c++20 -Wall -Wextra -Wshadow -fsanitize=undefined -fsanitize=address -o run Anna.cpp Bruno.cpp grader.cpp
#Verdict Execution timeMemoryGrader output
Fetching results...