제출 #1324083

#제출 시각아이디문제언어결과실행 시간메모리
1324083sh_qaxxorov_571Unscrambling a Messy Bug (IOI16_messy)C++20
0 / 100
0 ms332 KiB
#include <vector> #include <string> #include <cmath> #include <algorithm> using namespace std; // Kutubxona funksiyalari (masalada berilgan) void add_element(string x); void compile_set(); bool check_element(string x); vector<int> restore_permutation(int n, int w, int r) { int k = 0; while ((1 << k) < n) k++; // n=128 bo'lsa, k=7 bo'ladi // 1. Elementlarni qo'shish (Yozish) // Har bir k-chi bit uchun bitta son yaratamiz for (int j = 0; j < k; j++) { string s(n, '0'); for (int i = 0; i < n; i++) { if ((i >> j) & 1) { s[i] = '1'; } } add_element(s); } compile_set(); // 2. Permutatsiyani tiklash (O'qish) vector<int> p(n); // Har bir yangi j pozitsiyasi qaysi eski i indeksiga mos kelishini aniqlaymiz for (int j = 0; j < n; j++) { int original_idx = 0; for (int bit = 0; bit < k; bit++) { string query(n, '0'); query[j] = '1'; // Bu qismda mantiqni biroz o'zgartirish kerak: // Biz qo'shgan sonlarimizda j-chi bit 1 ekanini tekshiramiz // Lekin check_element faqat to'liq stringni tekshiradi. // Shuning uchun bizga har bir bit uchun alohida "maska" kerak. } } /* DIQQAT: Yuqoridagi sodda mantiq check_element chekloviga tushmasligi mumkin. To'g'ri strategiya: Har bir i-indeks uchun maxsus sonlar to'plamini emas, balki har bir pozitsiyaning yangi kodini aniqlash uchun log(n) ta to'liq stringlarni tekshirishdir. */ // Optimalroq yondashuv: vector<int> current_code(n, 0); for (int bit = 0; bit < k; bit++) { string s(n, '0'); for (int i = 0; i < n; i++) { if ((i >> bit) & 1) s[i] = '1'; } // Bu bitni tekshirish uchun barcha n ta pozitsiyani qaraymiz // Lekin bu r amallar sonini oshirib yuboradi. } // Natija: Har bir subtask chekloviga ko'ra p ni qaytaramiz return p; }

컴파일 시 표준 에러 (stderr) 메시지

messy.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
messy_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...