Submission #1244508

#TimeUsernameProblemLanguageResultExecution timeMemory
1244508Ice_manUnscrambling a Messy Bug (IOI16_messy)C++20
100 / 100
1 ms584 KiB
#include <vector> #include <iostream> #define maxn 1000 #include "messy.h" void _fill(std::string s, int l, int r) { if(l == r) return; //std::cout << "!! " << l << " " << r << "\n"; int mid = (l + r) / 2; for(int i = l; i <= mid; i++) { s[i] = '1'; add_element(s); //std::cout << s << "\n"; s[i] = '0'; } for(int i = l; i <= mid; i++) s[i] = '1'; _fill(s, mid + 1, r); for(int i = l; i <= mid; i++) s[i] = '0'; for(int i = mid + 1; i <= r; i++) s[i] = '1'; _fill(s , l , mid); } std::vector <int> ans; std::vector <int> ret; void rec(std::string s , int l , int r , std::vector <int> can) { if(l == r) { ans[l] = can.back(); return; } std::vector <int> left; std::vector <int> right; for(auto& e : can) { s[e] = '1'; bool lamp = check_element(s); s[e] = '0'; if(lamp == true) left.push_back(e); else right.push_back(e); } int mid = (l + r) / 2; for(auto& e : right) s[e] = '1'; rec(s , l , mid , left); for(auto& e : left) s[e] = '1'; for(auto& e : right) s[e] = '0'; rec(s , mid + 1 , r , right); } std::string s; std::vector<int> restore_permutation(int n, int w, int r) { ans.resize(n); ret.resize(n); for(int i = 0; i < n; i++) s += '0'; _fill(s , 0 , n - 1); compile_set(); std::vector <int> help; for(int i = 0; i < n; i++) help.push_back(i); rec(s , 0 , n - 1 , help); for(int i = 0; i < n; i++) ret[ans[i]] = i; //for(auto& e : ret) //std::cout << e << " "; //std::cout << "\n"; return ret; }

Compilation message (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...