Submission #285857

#TimeUsernameProblemLanguageResultExecution timeMemory
285857PyqeMinerals (JOI19_minerals)C++14
70 / 100
29 ms2424 KiB
#include "minerals.h" #include <bits/stdc++.h> using namespace std; long long nn[2],a[2][43069],sq[43069]; bitset<43069> vtd; void Solve(int n) { long long i,j,k,l=0,c,e; for(i=1;i<=n*2;i++) { k=Query(i); a[k==l][nn[k==l]]=i; nn[k==l]++; l=k; } for(i=0;i<n;i++) { vtd[i]=1; } for(i=0;1ll<<i<n;i++) { c=0; for(j=0;j<n;j++) { c+=(j>>i&1)!=vtd[j]; } e=n-c<c; for(j=0;j<n;j++) { if(((j>>i&1)^e)!=vtd[j]) { vtd[j]=!vtd[j]; l=Query(a[0][j]); } } for(j=0;j<n;j++) { k=Query(a[1][j]); sq[j]|=(k==l^e)<<i; l=k; } } for(i=0;i<n;i++) { Answer(a[1][i],a[0][sq[i]]); } }

Compilation message (stderr)

minerals.cpp: In function 'void Solve(int)':
minerals.cpp:43:13: warning: suggest parentheses around comparison in operand of '^' [-Wparentheses]
   43 |    sq[j]|=(k==l^e)<<i;
      |            ~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...