Submission #148933

#TimeUsernameProblemLanguageResultExecution timeMemory
148933rkm0959 (#200)Crosses on the Grid (FXCUP4_cross)C++17
100 / 100
360 ms17644 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> // Common file #include <ext/pb_ds/tree_policy.hpp> #include <functional> // for less #define L long long using namespace std; using namespace __gnu_pbds; int n; typedef tree<pair<int,int>, null_type, less<pair<int,int> >, rb_tree_tag, tree_order_statistics_node_update> ordered_set; ordered_set st; L SelectCross(int K, vector<int>I, vector<int> O){ L ret=0; n=I.size(); int i; vector<pair<int,int> >point; for(i=0;i<n;i++) { point.push_back(make_pair(O[i],I[i])); } sort(point.begin(),point.end(),[](pair<int,int>a, pair<int,int>b){ return a.second<b.second; }); for(i=n-1;i>=0;i--) { st.insert(point[i]); if(st.size()>=K) { L a=point[i].second; L b=st.find_by_order(st.size()-K)->first; //printf("%lld %lld %lld %lld\n",point[i].first,point[i].second,a,b); ret=max(ret,2*a*b-a*a); } else { //printf("%lld %lld\n",point[i].first,point[i].second); } } return ret; }

Compilation message (stderr)

cross.cpp: In function 'long long int SelectCross(int, std::vector<int>, std::vector<int>)':
cross.cpp:35:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if(st.size()>=K)
      ~~~~~~~~~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...