Submission #940718

#TimeUsernameProblemLanguageResultExecution timeMemory
940718PVM_pvmSuper Dango Maker (JOI22_dango3)C++17
100 / 100
298 ms1108 KiB
#include "dango3.h" #include <bits/stdc++.h> using namespace std; int n,m; void boqn(vector<int> pozicii, int cn, int cm) { /*cout<<"davam: "<<cn<<" "<<cm<<"\n"; for (int q=0;q<pozicii.size();q++) cout<<pozicii[q]<<" "; cout<<"\n";*/ if (cm==1) { Answer(pozicii); return; } int l=0,r=cn*cm; vector<int> zaqu; while (l<r-1) { int mid=(l+r)/2; zaqu.clear(); for (int q=0;q<=mid;q++) zaqu.push_back(pozicii[q]); /*for (int q=0;q<zaqu.size();q++) cout<<zaqu[q]<<" "; cout<<"\n";*/ int qu=Query(zaqu); //cout<<l<<" "<<mid<<" "<<r<<" "<<qu<<"\n"; if (qu<cm/2) l=mid; else r=mid; } //cout<<r<<"\n"; vector<int> pyrvo,vtoro; for (int q=0;q<=r;q++) pyrvo.push_back(pozicii[q]); for (int q=r+1;q<cn*cm;q++) vtoro.push_back(pozicii[q]); for (int q=r-1;q>=0;q--) { int poq=pyrvo[q]; swap(pyrvo[pyrvo.size()-1],pyrvo[q]); pyrvo.pop_back(); int qu=Query(pyrvo); //cout<<"mahnah "<<poq<<" "<<" i stana "<<qu<<"\n"; if (qu<cm/2) { pyrvo.push_back(poq); swap(pyrvo[pyrvo.size()-1],pyrvo[q]); } else { vtoro.push_back(poq); } } boqn(pyrvo,cn,cm/2); boqn(vtoro,cn,cm-cm/2); } void Solve(int N, int M) { n=N; m=M; vector<int> og; for (int q=1;q<=n*m;q++) og.push_back(q); boqn(og,n,m); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...