Advertisement
nicuvlad76

Untitled

Feb 4th, 2023
759
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.16 KB | None | 0 0
  1. #include <fstream>
  2. #define N 1001
  3. using namespace std;
  4. ifstream fin("oposumi.in");
  5. ofstream fout("oposumi.out");
  6. int a[N][N], v[N*N];
  7. int t,n,k, k1;
  8.  
  9. int main()
  10. {
  11.     fin>>t>>n;
  12.     int sol;
  13.     if(t==2){fin>>k; k1=k;}
  14.     for(int i=1;i<=n*(n+1)/2;i++)
  15.     {
  16.         int st=1, dr=n, mij, p;
  17.         while(st<=dr)
  18.         {
  19.             mij=(st+dr)/2;
  20.             if((n-mij+1) *(n-mij+2)/2<=n*(n+1)/2-i+1)
  21.             {
  22.                 p=mij; dr=mij-1;
  23.             }
  24.             else st=mij+1;
  25.         }
  26.         if(t==2 && i==k) sol=p;
  27.         if(t==1)fout<<p<<" ";
  28.     }
  29.     if(t==1){ return 0;}
  30.     ///cerinta 2
  31.     k=n*(n+1)/2;
  32.     for(int i=n;i>sol;i--)
  33.         for(int j=i-sol+1;j>=1; j--)
  34.     {
  35.         a[i][j]=k;
  36.         v[k]=1;k--;
  37.     }
  38.     a[sol][1]=k1;
  39.     v[k1]=1;
  40.     sol=1;
  41.     for(int i=1;i<=n;i++)
  42.     {
  43.         for(int j=1;j<=i;j++)
  44.         {
  45.             if(a[i][j]>0)continue;
  46.             while(v[sol]==1)sol++;
  47.             a[i][j]=sol;
  48.             v[sol]=1;
  49.         }
  50.     }
  51.     for(int i=1;i<=n;i++)
  52.     {
  53.         for(int j=1;j<=i;j++)
  54.             fout<<a[i][j]<<" ";
  55.         fout<<"\n";
  56.     }
  57.     return 0;
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement