Submission #56993

#TimeUsernameProblemLanguageResultExecution timeMemory
56993Mahmoud_AdelWatching (JOI13_watching)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/detail/standard_policies.hpp> #include <ext/pb_ds/assoc_container.hpp> // Common file #include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update #define f first #define s second #define pb push_back #define mp make_pair #define clr(dp,i) memset(dp,i,sizeof(dp)) #define opt ios_base::sync_with_stdio(NULL);cin.tie(NULL);cout.tie(NULL); using namespace std; using namespace __gnu_pbds; //typedef tree<int, null_type, less<int>, rb_tree_tag, //tree_order_statistics_node_update> oset; typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef pair<int, int> pii; const long long mod = 1e9+7; const ld pi = 3.14159265358979323846264338327950288; //================================================== int n, p, q, w, ans, a[2001]; map<pair<int, pii>, bool> dp; bool check(int i=0, int remp=p, int remq=q, int mx = -1) { if(i == n) return 1; if(mx > a[i]) return check(i+1, remp, remq, mx); if(dp.count(mp(i, pii(remp, remq)))) return dp[mp(i, pii(remp, remq))]; bool &ret = dp[mp(i, pii(remp, remq))]; else { ret = 0; if(remp) ret = check(i+1, remp-1, remq, a[i]+w); if(remq) ret = ret | check(i+1, remp, remq-1, a[i] + 2 * w); } return ret; } int main() { opt; cin >> n >> p >> q; for(int i=0; i<n; i++) cin >> a[i]; sort(a, a+n); if(p+q >= n) { cout << 1 << endl; return 0; } int s = 1, e = 1e9; while(s <= e) { dp.clear(); int mid = (s+e)/2; w = mid; if(check()) ans = mid, e = mid-1; else s = mid+1; } cout << ans << endl; }

Compilation message (stderr)

watching.cpp: In function 'bool check(int, int, int, int)':
watching.cpp:37:2: error: 'else' without a previous 'if'
  else
  ^~~~