This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "king.h"
#include<algorithm>
using namespace std;
long long SendInfo(vector<int> W, vector<int> C) {
int N = W.size();
sort(W.begin(), W.end());
sort(C.begin(), C.end());
int j=0,cnt=0,bef=-1;
long long ret=0;
for(int i=0;i<N;i++,j++){
while(j<C.size()&&W[i]>C[j]) j++;
if(j<C.size()) {
if(bef!=W[i]) cnt=1;
else cnt++;
ret=(W[i]<<20)+cnt;
bef = W[i];
}
else break;
}
return ret;
}
#include "vassal.h"
#include <bits/stdc++.h>
using namespace std;
long long Wmax, nmax;
set<pair<int,int>> se;
int cnt;
void Init(long long B, vector<int> C){
for(int i=0;i<C.size();i++){
se.insert(make_pair(C[i],i));
}
nmax = B&((1<<20)-1);
Wmax = B>>20;
}
int Maid(int W){
if(W<Wmax){
auto it = se.lower_bound(make_pair(W,0));
int ret = it->second;
se.erase(it);
return ret;
}
if(W==Wmax){
if(cnt>=nmax) return -1;
cnt++;
auto it = se.lower_bound(make_pair(W,0));
int ret = it->second;
se.erase(it);
return ret;
}
return -1;
}
Compilation message (stderr)
king.cpp: In function 'long long int SendInfo(std::vector<int>, std::vector<int>)':
king.cpp:13:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
while(j<C.size()&&W[i]>C[j]) j++;
~^~~~~~~~~
king.cpp:14:7: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if(j<C.size()) {
~^~~~~~~~~
vassal.cpp: In function 'void Init(long long int, std::vector<int>)':
vassal.cpp:8:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0;i<C.size();i++){
~^~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |