#include "Anna.h"
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <string>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <queue>
#include <deque>
#include <list>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
#include <cstring>
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
typedef long double ld;
#define REP(i,a,b) for(ll i=(ll) a; i<(ll) b; i++)
#define pb push_back
#define mp make_pair
#define pl pair<ll,ll>
#define ff first
#define ss second
#define whole(x) x.begin(),x.end()
#define DEBUG(i) cout<<"Pedro Is The Master "<<i<<endl
#define INF 500000000LL
#define EPS 0.00000001
#define pi 3.14159
namespace
{
int N, L, R;
vector<ll> r;
ll curplace; ll cur;
} // namespace
void InitA(int n, int l, int r)
{
N = n;
L = l;
R = r;
for(ll i=13;i>=5;i--) {SendA(L&(1LL<<i));}
for(ll i=13;i>=5;i--) {SendA(R&(1LL<<i));}
curplace=0LL; cur=0LL;
}
void ReceiveA(bool x)
{
if(x) {cur+=(1LL<<curplace);}
curplace++; if(curplace==14) {curplace=0LL; r.pb(cur); cur=0LL;}
}
int Answer()
{
ll ind;
if(R/32LL == L/32LL)
{
ind = L; ll val = r[L%32];
REP(i,L%32,R%32 + 1)
{
if(r[i]<val) {val=r[i]; ind = L-(L%32)+i;}
}
}
else
{
ind = r[64]; ll val = r[65];
REP(i,L%32,32)
{
if(r[i]<val) {val=r[i]; ind=L-(L%32)+i;}
}
REP(i,0,R%32 +1LL)
{
if(r[32+i]<val) {val=r[32+i]; ind=R-(R%32)+i;}
}
}
return ind;
}
#include "Bruno.h"
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
#include <string>
#include <map>
#include <unordered_map>
#include <set>
#include <unordered_set>
#include <queue>
#include <deque>
#include <list>
#include <iomanip>
#include <stdlib.h>
#include <time.h>
#include <cstring>
using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
typedef long double ld;
#define REP(i,a,b) for(ll i=(ll) a; i<(ll) b; i++)
#define pb push_back
#define mp make_pair
#define pl pair<ll,ll>
#define ff first
#define ss second
#define whole(x) x.begin(),x.end()
#define DEBUG(i) cout<<"Pedro Is The Master "<<i<<endl
#define INF 500000000LL
#define EPS 0.00000001
#define pi 3.14159
namespace
{
int N;
vector<int> p;
ll L,R;
ll ind;
} // namespace
void InitB(int n, vector<int> P)
{
N=n; REP(i,0,N) {p.pb(P[i]);}
L=0LL; R=0LL;
ind=0LL;
}
void ReceiveB(bool y)
{
if(ind<9LL && y) {L+=(1LL<<(13LL-ind));}
else if(y) {R+=(1LL<<(22LL-ind));}
ind++;
if(ind==18)
{
REP(i,L,L+32)
{
if(i>=N) {REP(j,0,14) {SendB(true);} continue;}
REP(j,0,14) {SendB(p[i]&(1LL<<j));}
}
REP(i,R,R+32)
{
if(i>=N) {REP(j,0,14) {SendB(true);} continue;}
REP(j,0,14) {SendB(p[i]&(1LL<<j));}
}
ll ind=(1LL<<14LL)-1LL; ll mv=(1LL<<14LL)-1LL;
REP(i,L+32LL,R)
{
if(i>=N) {continue;}
if(p[i]<mv) {ind=i; mv=p[ind];}
}
REP(j,0,14) {SendB(ind&(1LL<<j));}
REP(j,0,14) {SendB(mv&(1LL<<j));}
}
return;
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |