#46507: 測資二過不了


ck11300568@gl.ck.tp.edu.tw (ck11300568彭翊軒)

學校 : 不指定學校
編號 : 305237
來源 : [49.216.195.196]
最後登入時間 :
2025-09-27 15:05:48

程式碼如下:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int R,C,M;
    cin>>R>>C>>M;
    int tmp;
    if (R>C)tmp = R;
    else tmp=C;
    int arr[tmp][tmp];
    int narr[tmp][tmp];
    for(int i=0;i<R;i++){
        for(int j=0;j<C;j++){
            cin>>arr[i][j];
        }
    }
    int K[M];
    //0旋轉i=C-1-j,j=i 1翻轉i=R-1-i,j=j
    for(int i=M-1;i>=0;i--){
        cin>>K[i];
        if(K[i] == 0){
            for(int i=0;i<R;i++){
                for(int j=0;j<C;j++){
                    narr[C-1-j][i]=arr[i][j];
                }
            }
            swap(R,C);
            for(int i=0; i<R; i++){
                for(int j=0; j<C; j++) arr[i][j] = narr[i][j];
            }

        }
        if(K[i] == 1){
            for(int i=0;i<R;i++){
                for(int j=0;j<C;j++){
                    narr[R-1-i][j]=arr[i][j];
                }
            }
            for(int i=0; i<R; i++){
                for(int j=0; j<C; j++) arr[i][j] = narr[i][j];
            }
        }
    }
    cout<<R<<" "<<C<<endl;
    for(int i=0;i<R;i++){
        for(int j=0;j<C;j++){
            cout<<arr[i][j]<<" ";
        }
        cout<<endl;
    }

    return 0;
}