Submission #148762

#TimeUsernameProblemLanguageResultExecution timeMemory
148762还没编好 (#200)Crosses on the Grid (FXCUP4_cross)C++17
100 / 100
122 ms6636 KiB
#include "cross.h" #include <bits/stdc++.h> using namespace std; #define rep(i,a,n) for (int i=a;i<n;i++) #define per(i,a,n) for (int i=n-1;i>=a;i--) #define pb push_back #define mp make_pair #define all(x) (x).begin(),(x).end() #define fi first #define se second #define SZ(x) ((int)(x).size()) typedef vector<int> VI; typedef long long ll; typedef pair<int,int> PII; const ll mod=1000000007; ll powmod(ll a,ll b) {ll res=1;a%=mod; assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;} ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;} // head const int N=201000; int n; pair<int,int> p[N]; ll sqr(ll x) { return x*x; } long long SelectCross(int K, std::vector<int> I, std::vector<int> O) { n=SZ(I); for (int i=0;i<n;i++) p[i]=mp(O[i],I[i]); sort(p,p+n); reverse(p,p+n); priority_queue<int,vector<int>,greater<int>> q; ll ans=0; for (int i=0;i<n;i++) { while (q.size()>K-1) q.pop(); if (q.size()==K-1) { ans=max(ans,sqr(p[i].first)-sqr( max(p[i].first-min(p[i].second,(K==1?(1<<30):q.top())),0))); } q.push(p[i].second); } return ans; }

Compilation message (stderr)

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