# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
925967 | 2024-02-12T12:04:10 Z | andrei_boaca | Super Dango Maker (JOI22_dango3) | C++17 | 1628 ms | 896 KB |
#include <bits/stdc++.h> #include "dango3.h" //#include "grader.cpp" using namespace std; int cul[10005]; int nn,mm; vector<int> poz; bool bad[10005]; bool have(int x,int l,int r) { bad[x]=1; for(int i=l;i<=r;i++) bad[poz[i]]=1; vector<int> v; for(int i=1;i<=nn*mm;i++) { if(!bad[i]) v.push_back(i); else bad[i]=0; } int rez=Query(v); return rez==mm-2; } bool f[10005]; void Solve(int n,int m) { nn=n; mm=m; cul[1]=1; poz.push_back(1); for(int i=2;i<=n*m;i++) { int st=0; int dr=poz.size(); dr--; int who=0; while(st<=dr) { int mij=(st+dr)/2; if(st==mij&&poz.size()==m) { who=st+1; break; } if(have(i,st,mij)) { if(st==mij) { who=st+1; break; } dr=mij; } else st=mij+1; } if(who==0) { poz.push_back(i); who=poz.size(); } cul[i]=who; } for(int z=1;z<=m;z++) { for(int i=1;i<=n;i++) f[i]=0; vector<int> v; for(int i=1;i<=n*m;i++) if(cul[i]!=0&&f[cul[i]]==0) { v.push_back(i); f[cul[i]]=1; cul[i]=0; } Answer(v); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 348 KB | Wrong Answer [4] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 9 ms | 508 KB | Wrong Answer [4] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 410 ms | 348 KB | Wrong Answer [4] |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 1628 ms | 896 KB | Wrong Answer [4] |
2 | Halted | 0 ms | 0 KB | - |