Advertisement
Patrickmeme

Cifru1-nu merge exemplu

Feb 5th, 2023
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.07 KB | None | 0 0
  1. #include <fstream>
  2.  
  3. using namespace std;
  4. ifstream cin("cifru1.in");
  5. ofstream cout("cifru1.out");
  6.  
  7. #define N_MAX 100
  8. int v[N_MAX][N_MAX];
  9.  
  10. int main()
  11. {
  12.     int n,lin,col,buc,s,ls,lj,cs,cd,i,aux;
  13.     cin>>n;
  14.     for(lin=0;lin<n;lin++){
  15.         for(col=0;col<n;col++){
  16.             cin>>v[lin][col];
  17.         }
  18.     }
  19.     s=0;
  20.     for(buc=0;buc<n/2;buc++){
  21.         ls=lj=cs=cd=0;
  22.         for(i=buc;i<=n-1-buc;i++){
  23.             cs+=v[i][buc];
  24.             cd+=v[i][n-1-buc];
  25.             ls+=v[buc][i];
  26.             lj+=v[n-1-buc][i];
  27.         }
  28.         printf("max: %d lin sus:%d lin jos:%d col dr:%d col stg:%d\n",max(max(ls,lj),max(cs,cd)),ls,lj,cd,cs);
  29.         if(max(max(ls,lj),max(cs,cd))==cd){
  30.             ///rotire 90 grade stanga
  31.             for(i=buc;i<=n-1-buc;i++){
  32.                 aux=v[buc][i];
  33.                 v[buc][i]=v[i][n-1-buc];
  34.                 v[i][n-1-buc]=v[n-1-buc][i];
  35.                 v[n-1-buc][i]=v[i][buc];
  36.                 v[i][buc]=aux;
  37.             }
  38.         }else if(max(max(ls,lj),max(cs,cd))==lj){
  39.             ///rotire 180
  40.             for(i=buc;i<=n-1-buc;i++){
  41.                 aux=v[i][buc];
  42.                 v[i][buc]=v[i][n-1-buc];
  43.                 v[i][n-1-buc]=aux;
  44.                 aux=v[buc][i];
  45.                 v[buc][i]=v[n-1-buc][i];
  46.                 v[n-1-buc][i]=aux;
  47.             }
  48.             aux=v[i][buc];
  49.             v[i][buc]=v[i][n-1-buc];
  50.             v[i][n-1-buc]=aux;
  51.             aux=v[buc][i];
  52.             v[buc][i]=v[n-1-buc][i];
  53.             v[n-1-buc][i]=aux;
  54.         }else if(max(max(ls,lj),max(cs,cd))==cs){
  55.             ///rotire 90 grade dreapta
  56.             for(i=buc;i<=n-1-buc;i++){
  57.                 aux=v[i][buc];
  58.                 v[i][buc]=v[n-1-buc][i];
  59.                 v[n-1-buc][i]=v[i][n-1-buc];
  60.                 v[i][n-1-buc]=v[buc][i];
  61.                 v[buc][i]=aux;
  62.             }
  63.         }
  64.         s+=max(max(ls,lj),max(cs,cd));
  65.  
  66.     }
  67.     cout<<s<<endl;
  68.     for(lin=0;lin<n;lin++){
  69.         for(col=0;col<n;col++)
  70.             cout<<v[lin][col]<<" ";
  71.         cout<<endl;
  72.     }
  73.  
  74.  
  75.     return 0;
  76. }
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement