Submission #1224678

#TimeUsernameProblemLanguageResultExecution timeMemory
1224678LIAPaint By Numbers (IOI16_paint)C++17
32 / 100
0 ms328 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef tuple <ll,ll,ll> plll; typedef vector <plll> vplll; typedef pair <ll,ll> pll; typedef vector <ll> vll; typedef vector <pll> vpll; typedef vector <vector <pll>> vvpll; typedef vector <vector <ll>> vvll; typedef vector <bool> vb; typedef vector <vector <bool>> vvb; #define loop(i, s, e) for (ll i = (s); i < (e); ++i) #define loopr(i, e, s) for (ll i = (e)-1; i >= (s); --i) #define all(a) a.begin(), a.end() const ll inf = 1e9 + 7; string solve_puzzle(string s, vector<int> c) { int n = s.size(), k = c.size(); vector<int> l(k), r(k); int pos = 0; for (int i = 0; i < k; ++i) { while (pos + c[i] <= n) { bool ok = true; for (int t = pos; t < pos + c[i]; ++t) if (s[t] == '_') { ok = false; break; } if (ok) break; ++pos; } l[i] = pos; pos += c[i] + 1; } pos = n; for (int i = k - 1; i >= 0; --i) { int start = pos - c[i]; while (start >= 0) { bool ok = true; for (int t = start; t < start + c[i]; ++t) if (s[t] == '_') { ok = false; break; } if (ok) break; --start; } r[i] = start; pos = start - 1; } string ans(n, '?'); for (int i = 0; i < k; ++i) { int a = max(l[i], r[i]); int b = min(l[i] + c[i] - 1, r[i] + c[i] - 1); for (int x = a; x <= b; ++x) ans[x] = 'X'; } for (int x = 0; x < n; ++x) { bool cover = false; for (int i = 0; i < k; ++i) if (x >= l[i] && x <= r[i] + c[i] - 1) { cover = true; break; } if (!cover) ans[x] = '_'; } return ans; }

Compilation message (stderr)

paint.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
paint_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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...