Thứ Bảy, 4 tháng 12, 2021

OQUAN C++

#include <bits/stdc++.h>
#define Nekan "oquan"
#define fi first
#define se second
#define pb push_back
#define LL long long
#define pii pair<int,int>
const int N=1e6+5;
const long long mod=1e9+7;
using namespace std;



int a[3][8], cw[3][3][8], ccw[3][3][8];



void xuly()
{
    //set up
    //chieu kim dong ho
    for(int j=1;j<=7;++j) cw[1][1][j]= 1; cw[1][1][6]= 2;
    for(int j=1;j<=7;++j) cw[1][2][j]= 2; cw[1][2][2]= 1;

    for(int j=1;j<=7;++j) cw[2][1][j]= j+1;
    for(int j=1;j<=7;++j) cw[2][2][j]= j-1;

    ///////////////////////////////////

    //nguoc chieu kim dong ho
    for(int j=1;j<=7;++j) ccw[1][1][j]= 1; ccw[1][1][1]= 2;
    for(int j=1;j<=7;++j) ccw[1][2][j]= 2; ccw[1][2][7]= 1;

    for(int j=1;j<=7;++j) ccw[2][1][j]= j-1; ccw[2][1][1]= 2;
    for(int j=1;j<=7;++j) ccw[2][2][j]= j+1; ccw[2][2][7]= 6;




    for(int i=1;i<=2;++i)
    for(int j=1;j<=7;++j) cin>>a[i][j];


    int vt1= 0, vt2= 0, chieu= 0, maxx= 0;


    for(int i=1;i<=2;++i)
    for(int j=1;j<=7;++j)
    {
        if (a[i][j] >= 12) continue;
        if (j == 7 || j == 1) continue;

        int c= a[i][j], x= i, y= j, cc= a[i][j];
        a[i][j]= 0;
        //di theo chieu kim dong ho
        while (c != 0)
        {
            int X= cw[1][x][y], Y= cw[2][x][y];
            --c;
            x= X, y= Y;
            if (c == 0)
            {
                X= cw[1][x][y], Y= cw[2][x][y];


                x= X, y= Y;
                X= cw[1][x][y], Y= cw[2][x][y];
                if (a[x][y] == 0 && a[X][Y] > maxx)
                {
                    maxx= a[X][Y];
                    vt1= i, vt2= j;
                    chieu= 1;
                }
            }
        }


        //di theo nguoc chieu kim dong ho
        x= i, y= j;
        c= cc;
        while (c != 0)
        {
            int X= ccw[1][x][y], Y= ccw[2][x][y];
            --c;
            x= X, y= Y;

            if (c == 0)
            {
                X= ccw[1][x][y], Y= ccw[2][x][y];


                x= X, y= Y;
                X= ccw[1][x][y], Y= ccw[2][x][y];
                if (a[x][y] == 0 && a[X][Y] > maxx)
                {
                    maxx= a[X][Y];
                    vt1= i, vt2= j;
                    chieu= 0;
                }
            }
        }

        a[i][j]= cc;
    }

    cout<<vt1<<" "<<vt2<<" "<<chieu<<'\n';
    cout<<maxx;
}



int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
   /* if(fopen(Nekan".inp", "r"))
    {
        freopen(Nekan".inp", "r", stdin);
        freopen(Nekan".out", "w", stdout);
    }*/
    xuly();
}


Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.