Submission #1317534

#TimeUsernameProblemLanguageResultExecution timeMemory
1317534nikaa123Unscrambling a Messy Bug (IOI16_messy)C++20
20 / 100
2 ms568 KiB
#include <bits/stdc++.h> #include "messy.h" using namespace std; int n1; vector <int> ans; void add(int l, int r) { // cout << 1 << endl; if (l == r) return; int mid = (l+r)/2; string res = ""; for (int i = 0; i < n1; i++) res += "1"; for (int i = l; i <= r; i++) { res[i] = '0'; } for (int i = l; i <= mid; i++) { res[i] = '1'; add_element(res); // cout << res << endl; res[i] = '0'; } add(l,mid); add(mid+1,r); } void getans(int l, int r, vector <int> v) { // if (v.size() == 0) // cout << 2 << endl; // for (auto to:v) { // cout << to << " "; // } // cout << endl; if (l == r) { ans[l] = v[0]; return; } string res = ""; for (int i = 0; i < n1; i++) { res += "1"; } for (int i = 0; i < v.size(); i++) { res[v[i]] = '0'; } // cout << res << endl; vector <int> lv,rv; for (int i1 = 0; i1 < v.size(); i1++) { int i = v[i1]; if (res[i] == '0') { res[i] = '1'; bool is = check_element(res); // cout << is << endl; if (is) lv.emplace_back(i); else rv.emplace_back(i); res[i] = '0'; } } int mid = (l+r)/2; getans(l,mid,lv); getans(mid+1,r,rv); } vector<int> restore_permutation(int N, int w, int r) { n1 = N; ans.resize(n1); add(0,n1-1); compile_set(); vector <int> full(n1); iota(full.begin(),full.end(),0); getans(0,n1-1,full); return ans; }

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