1 solutions

  • 0
    @ 2025-11-5 16:23:52

    C++ :

    #  include<cstdio>
    #  include<cstring>
    #  include<cstdlib>
    
    int  next[1000008],n,m,q,p,d,l,r,c[1000008],k;
    
    void  Init()
    {
          scanf("%d%d%d%d",&n,&m,&p,&q);
          if  (n>m)  d=1;else  d=m-n+1;      
          for  (int i=1;i<=n;i++)  next[i]=i+1;
    }
    
    void  Work()
    {
          int i,j,t;
          for  (k=m;k>=d;k--)
          {
                l=(k*p+q)%n+1;
                r=(k*q+p)%n+1;
                if  (l>r)  {t=l;l=r;r=t;}
                for  (i=l;i<=r;)  
                {
                       if  (!c[i])  c[i]=k;
                       j=next[i];next[i]=r+1;
                       i=j;
                }
          }
          for  (i=1;i<=n;i++)  printf("%d\n",c[i]);
    }
    int main()
    {
        //freopen("winter.in","r",stdin);
        //freopen("winter.out","w",stdout);
        Init();
        Work();
        fclose(stdin);
        fclose(stdout);
        return 0;    
    }
    
    • 1

    Information

    ID
    17748
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By