Submission #1171679

#TimeUsernameProblemLanguageResultExecution timeMemory
1171679PedroBigManShopping (JOI21_shopping)C++20
10 / 100
70 ms12724 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...