QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#129039#5095. 九王唱starrylasky0 0ms0kbC++141.9kb2023-07-21 19:58:432023-07-21 19:58:46

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-07-21 19:58:46]
  • Judged
  • Verdict: 0
  • Time: 0ms
  • Memory: 0kb
  • [2023-07-21 19:58:43]
  • Submitted

answer

///yl/hs/bx/yl
#include<bits/stdc++.h>
#define fep(i,l,r) for(int i=l;i<=r;++i)
#define feb(i,r,l) for(int i=r;i>=l;--i)
#define For(i,u) for(int i=head[u];i;i=e[i].nxt)
#define LL long long
// #define int long long
#define ld long double
#define pr pair<int,int>
#define mpr make_pair
using namespace std;
inline int read()
{
   int s=0,w=1; char ch=getchar();
   while(!(ch>='0'&&ch<='9')) {if(ch=='-') w=-1; ch=getchar();}
   while(  ch>='0'&&ch<='9')  {s=(s<<1)+(s<<3)+ch-'0'; ch=getchar();}
   return s*w;
}

namespace starrylasky
{
    const int N=5010;
    int n,seed,a[N][N],c[N][N],p[N],b[N];
    inline void getans() {fep(i,1,n+1) if(!b[i]) printf("%d ",i);}
    inline void gen(int n,int seed){
        std::mt19937 rnd(seed);
        for(int i=1;i<=n;++i){
            for(int j=1;j<=n+1;++j){
                a[i][j]=j;
                std::swap(a[i][j],a[i][rnd()%j+1]);
            }
        }
    }

    inline void Main()
    {
        n=read(),seed=read();
        if(!seed) fep(i,1,n) fep(j,1,n+1) a[i][j]=read();
        else gen(n,seed);
        fep(i,1,n)
        {
            fep(j,1,n+1) c[i][j]=j,b[j]=a[i][j];
            sort(c[i]+1,c[i]+2+n,[](const int x,const int y) {return b[x]>b[y];});
        }
        memset(b,0,sizeof(b));
        feb(i,n,1)
        {
            p[i]=n+1;
            while(b[c[i][p[i]]]) --p[i];
            b[c[i][p[i]]]=i;
        }
        // fep(i,1,n) cerr<<p[i]<<" "; cerr<<"\n";
        getans();
        fep(i,2,n)
        {
            int u=b[n+1];
            b[p[i-1]]=0,p[i-1]=n+1,b[n+1]=i-1;
            while(u)
            {
                --p[u];
                while(!(i<=b[c[u][p[u]]]&&b[c[u][p[u]]]<u)) ++p[u];
                int to=b[c[u][p[u]]]; b[c[u][p[u]]]=u; u=to; 
            }
            getans();
        }
    }
}

signed main()
{
    int _T=1;
    while(_T--) starrylasky::Main();
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Runtime Error

Test #1:

score: 0
Runtime Error

input:

8 0
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5
6 1 3 2 9 7 8 4 5

output:


result:


Subtask #2:

score: 0
Skipped

Dependency #1:

0%

Subtask #3:

score: 0
Skipped

Dependency #1:

0%

Subtask #4:

score: 0
Skipped

Dependency #1:

0%