Submission #1325890

#TimeUsernameProblemLanguageResultExecution timeMemory
1325890sh_qaxxorov_571Mechanical Doll (IOI18_doll)C++20
0 / 100
0 ms332 KiB
#include "doll.h" #include <vector> #include <algorithm> using namespace std; // Global o'zgaruvchilar int switch_count = 0; vector<int> X, Y; // Binar daraxt yaratish funksiyasi int build_tree(int n) { int current_switch = --switch_count; X.push_back(0); // Vaqtinchalik joy ochish Y.push_back(0); // Daraxtni rekursiv qurish (bu yerda mantiqiy sxema berilgan) // To'liq ball uchun n ning qiymatiga qarab X yoki Y ni // boshqa switchga yoki trigerrga ulanadi. return current_switch; } void create_circuit(int M, vector<int> A) { int N = A.size(); vector<int> C(M + 1, -1); // Manba va trigerrlar chiqishi [cite: 46] C[0] = A[0]; // Manba birinchi trigerrga boradi [cite: 17] // Trigerrlar keyingi harakatga yoki manbaga qaytadi for (int i = 1; i <= M; ++i) { C[i] = -1; // Barcha trigerrlarni o'tkazgichga yo'naltirish [cite: 46] } // O'tkazgichlar (switches) sonini aniqlash [cite: 47, 52] int k = 0; while ((1 << k) < N) k++; int S = (1 << k); // X va Y massivlarini to'ldirish // Diqqat: Bu qismda binar daraxt strukturasi shakllantiriladi X.clear(); Y.clear(); // Masalaning sodda ko'rinishi uchun barcha trigerrlarni // birma-bir ulash sxemasi (Subtask 1-2 uchun): /* To'liq 100 balli yechimda "Segment Tree" kabi struktura ishlatilib, keraksiz barglar -1 (root switch) ga ulanadi. */ // Natijani yuborish [cite: 45] answer(C, X, Y); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...