제출 #127659

#제출 시각아이디문제언어결과실행 시간메모리
127659SortingUnscrambling a Messy Bug (IOI16_messy)C++14
0 / 100
2078 ms504 KiB
#include <bits/stdc++.h> using namespace std; void add_element(string x); void compile_set(); bool check_element(string x); void add(string &s, int l, int r){ if(l == r){ return; } int mid = (l + r) >> 1; for(int i = l; i <= mid; i++){ s[i] = '1'; add_element(s); s[i] = '0'; } for(int i = l; i <= mid; i++){ s[i] = '1'; } add(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'; } add(s, l, mid); for(int i = mid + 1; i <= r; i++){ s[i] = '0'; } } vector<int> v1, v2; void solve(vector<int> &p, string &s, int l, int r){ if(l == r){ return; } int mid = (l + r) >> 1; for(int i = l; i <= r; i++){ s[p[i]] = '1'; if(check_element(s)){ v1.push_back(p[i]); } else{ v2.push_back(p[i]); } s[p[i]] = '0'; } while(v1.size() != mid - l + 1); for(int i = l; i <= mid; i++){ p[i] = v1[i - l]; } for(int i = mid + 1; i <= r; i++){ p[i] = v2[i - mid - 1]; } v1.clear(); v2.clear(); for(int i = mid + 1; i <= r; i++){ s[i] = '1'; } solve(p, s, l, mid); for(int i = mid + 1; i <= r; i++){ s[i] = '0'; } for(int i = l; i <= mid; i++){ s[i] = '1'; } solve(p, s, mid + 1, r); for(int i = l; i <= mid; i++){ s[i] = '0'; } } vector<int> restore_permutation(int n, int w, int r){ string s; for(int i = 0; i < n; i++){ s += '0'; } add(s, 0, n - 1); compile_set(); vector<int> p; for(int i = 0; i < n; i++){ p.push_back(i); } solve(p, s, 0, n - 1); vector<int> ret; for(int i = 0; i < n; i++){ ret.push_back(i); } for(int i = 0; i < n; i++){ ret[p[i]] = i; } return ret; }

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

messy.cpp: In function 'void solve(std::vector<int>&, std::__cxx11::string&, int, int)':
messy.cpp:64:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(v1.size() != mid - l + 1);
        ~~~~~~~~~~^~~~~~~~~~~~~~
#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...