Submission #1070051

#TimeUsernameProblemLanguageResultExecution timeMemory
1070051vjudge1Sprinklers (CEOI24_sprinklers)C++17
20 / 100
2070 ms4816 KiB
#include <bits/stdc++.h> #define int long long using namespace std; struct Obj { int t, pos, i; Obj(){} Obj(int ti, int pi, int ii):t(ti),pos(pi),i(ii){} }; bitset<20> bs; bool trywith(vector<Obj>& a, int& n, int K) { bool ok; for(int i = 0; i < (1 << n); i++) { ok = true; bitset<20> bit(i); vector<bool> oki(a.size(), false); for(int j = 0; j < a.size(); j++) { if(!a[j].t) { oki[j] = true; for(int k = 0; k < a.size(); k++) { if(bit[a[j].i] && a[j].pos <= a[k].pos && a[k].pos <= a[j].pos + K || !bit[a[j].i] && a[j].pos - K <= a[k].pos && a[k].pos <= a[j].pos) oki[k] = true; } } } for(int j = 0; j < a.size(); j++) { if(!oki[j]) ok = false; } if(ok) { bs = bit; break; } } return ok; } void solve() { int n, m, temp; cin >> n >> m; vector<Obj> a; for(int i = 0; i < n; i++) { cin >> temp; a.push_back(Obj(0, temp, i)); } for(int i = 0; i < m; i++) { cin >> temp; a.push_back(Obj(1, temp, i)); } sort(a.begin(), a.end(), [](Obj x, Obj y){ if(x.pos == y.pos) return x.t > y.t; return x.pos < y.pos; }); int l = 0, r = 1e9+1, mid, ans = -1; while(l <= r) { mid = (l + r) / 2; if(trywith(a, n, mid)) { r = mid - 1; ans = mid; } else l = mid + 1; } cout << ans << "\n"; if(ans != -1) { for(int i = 0; i < n; i++) { if(bs[i]) cout << 'R'; else cout << 'L'; } cout << "\n"; } } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); solve(); }

Compilation message (stderr)

Main.cpp: In function 'bool trywith(std::vector<Obj>&, long long int&, long long int)':
Main.cpp:18:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<Obj>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   18 |         for(int j = 0; j < a.size(); j++) {
      |                        ~~^~~~~~~~~~
Main.cpp:21:34: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<Obj>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |                 for(int k = 0; k < a.size(); k++) {
      |                                ~~^~~~~~~~~~
Main.cpp:22:60: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   22 |                     if(bit[a[j].i] && a[j].pos <= a[k].pos && a[k].pos <= a[j].pos + K || !bit[a[j].i] && a[j].pos - K <= a[k].pos && a[k].pos <= a[j].pos) oki[k] = true;
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
Main.cpp:26:26: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<Obj>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   26 |         for(int j = 0; j < a.size(); j++) {
      |                        ~~^~~~~~~~~~
#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...