# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
635941 | Cross_Ratio | Super Dango Maker (JOI22_dango3) | C++17 | 2462 ms | 636 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "dango3.h"
#include <bits/stdc++.h>
using namespace std;
int Query(const vector<int>&);
void Answer(const vector<int>&);
vector<vector<int>> A;
vector<int> V;
void Solve(int N, int M) {
A.resize(N);
int i, j;
for(i=1;i<=N*M;i++) V.push_back(i);
vector<int> C;
int base = 0;
for(i=0;i<N;i++) {
int prv = N-i-1;
vector<int> B(M);
vector<bool> on(V.size());
for(j=0;j<V.size();j++) on[j] = true;
for(j=0;j<M;j++) B[j] = V.size() - (M-j-1);
for(j=0;j<M;j++) {
int s = prv;
int e = B[j];
while(s+1<e) {
int mid = (s+e)/2;
for(int k2=0;k2<mid;k2++) {
if(on[k2]) C.push_back(V[k2]);
}
int k = Query(C);
for(int k2=0;k2<mid;k2++) {
if(on[k2]) C.pop_back();
}
if(k>1&&k-1+j<M) B[k-1+j] = min(B[k-1+j], mid);
if(k==0) s = mid;
else e = mid;
}
A[i].push_back(V[s]);
on[s] = false;
}
for(int n : A[i]) C.push_back(n);
vector<int> V2;
for(j=0;j<V.size();j++) {
if(on[j]) V2.push_back(V[j]);
}
V = V2;
}
for(i=0;i<M;i++) {
vector<int> F;
for(j=0;j<N;j++) F.push_back(A[j][i]);
Answer(F);
}
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |