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...