Submission #779525

#TimeUsernameProblemLanguageResultExecution timeMemory
779525OrazBGlobal Warming (CEOI18_glo)C++14
100 / 100
52 ms6332 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #include <functional> using namespace __gnu_pbds; using namespace std; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; //Dijkstra->set //set.find_by_order(x) x-position value //set.order_of_key(x) number of strictly less elements don't need *set.?? #define N 200005 #define wr cout << "Continue debugging\n"; #define all(x) (x).begin(), (x).end() #define ll long long int #define pii pair <int, int> #define pb push_back #define ff first #define ss second void LIS(int n, vector<int> a, vector<int>&lft, int tr, int x){ vector<int> vec; vec.pb(a[1]); lft[1] = 0; for (int i = 2; i <= n; i++){ int pos = lower_bound(all(vec), a[i])-vec.begin(); if (tr){ int ind = lower_bound(all(vec), a[i]+x)-vec.begin(); lft[i] = ind+1; }else lft[i] = pos+1; if (pos == vec.size()) vec.pb(a[i]); else vec[pos] = min(vec[pos], a[i]); } } int main () { ios::sync_with_stdio(false); cin.tie(0); int n, x; cin >> n >> x; vector<int> a(n+1); for (int i = 1; i <= n; i++) cin >> a[i]; vector<int> lft(n+1, 0), rgt(n+1, 0); LIS(n, a, lft, 0, x); for (int i = 1; i <= n; i++) a[i] = -a[i]; reverse(a.begin()+1, a.end()); LIS(n, a, rgt, 1, x); int mx = 0; for (int i = 1; i <= n; i++){ mx = max(mx, lft[i]+rgt[n-i+1]-1); } cout << mx; }

Compilation message (stderr)

glo.cpp: In function 'void LIS(int, std::vector<int>, std::vector<int>&, int, int)':
glo.cpp:33:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |   if (pos == vec.size()) vec.pb(a[i]);
      |       ~~~~^~~~~~~~~~~~~
#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...