当前位置:网站首页>L1-072 scratch lottery

L1-072 scratch lottery

2022-07-04 16:31:00 HBUcs2020

This problem is not difficult , But the procedure is a little cumbersome

Be careful :flag[a[i][j]]=1;   // a key !! Be careful

Or change to :int b[25] = {0, 0, 0, 0, 0, 0, 10000, 36, 720, 360, 80, 252, 108, 72, 54, 180, 72, 180, 119, 36, 306, 1080, 144, 1800, 3600};


#include<iostream>
using namespace std;
int main()
{
    int a[3][3],flag[10]= {0};
    int x1,y1;
    for(int i=0; i<3; i++)
    {
        for(int j=0; j<3; j++)
        {
            cin>>a[i][j];
            if(a[i][j]==0)
            {
                x1=i;
                y1=j;
            }
            else
                flag[a[i][j]]=1;   // a key !! Be careful 
        }
    }
    int p;
    for(int i=1; i<=9; i++)
    {
        if(flag[i]==0)
            p=i;
    }
    a[x1][y1]=p;
    //cout<<"wei:"<<p<<endl;
    for(int i=0; i<3; i++)
    {
        int x,y;
        cin>>x>>y;
        cout<<a[x-1][y-1]<<endl;
    }
    int x,sum=0;
    //cout<<"555"<<endl;
    cin>>x;
    switch(x)
    {
    case 1:
        sum=a[0][0]+a[0][1]+a[0][2];
        break;
    case 2:
        sum=a[1][0]+a[1][1]+a[1][2];
        break;
    case 3:
        sum=a[2][0]+a[2][1]+a[2][2];
        break;
    case 4:
        sum=a[0][0]+a[1][0]+a[2][0];
        break;
    case 5:
        sum=a[0][1]+a[1][1]+a[2][1];
        break;
    case 6:
        sum=a[0][2]+a[1][2]+a[2][2];
        break;
    case 7:
        sum=a[0][0]+a[1][1]+a[2][2];
        break;
    case 8:
        sum=a[0][2]+a[1][1]+a[2][0];
        break;
    default:
        break;
    }
    if(sum==6)
        cout<<"10000"<<endl;
    else if(sum==7)
        cout<<"36"<<endl;
    else if(sum==8)
        cout<<"720"<<endl;
    else if(sum==9)
        cout<<"360"<<endl;
    else if(sum==10)
        cout<<"80"<<endl;
    else if(sum==11)
        cout<<"252"<<endl;
    else if(sum==12)
        cout<<"108"<<endl;
    else if(sum==13)
        cout<<"72"<<endl;
    else if(sum==14)
        cout<<"54"<<endl;
    else if(sum==15)
        cout<<"180"<<endl;
    else if(sum==16)
        cout<<"72"<<endl;
    else if(sum==17)
        cout<<"180"<<endl;
    else if(sum==18)
        cout<<"119"<<endl;
    else if(sum==19)
        cout<<"36"<<endl;
    else if(sum==20)
        cout<<"306"<<endl;
    else if(sum==21)
        cout<<"1080"<<endl;
    else if(sum==22)
        cout<<"144"<<endl;
    else if(sum==23)
        cout<<"1800"<<endl;
    else
        cout<<"3600"<<endl;
    return 0;
}



subject :

“ Scratch the lottery ” It is a small game in an online game . As shown in the figure :

Every time the game player gets a lottery ticket , There will be 9 A digital , They are numbers 1 To digital 9, The numbers do not repeat , And  3×3  Of “ squared paper for practicing calligraphy ” The form is arranged on the lottery .

At the beginning of the game, you can see a number in a position , Numbers in other locations are not visible . You can choose the number of three positions to scrape away , So the player can see the numbers in four positions . Finally, the player starts from 3 cross 、3 vertical 、2 Oblique Co 8 Choose one of the directions , The sum of three numbers in the direction can be cashed according to the following table , Get the corresponding amount of gold coins .

The figures add up to Get the gold The figures add up to Get the gold
610,0001672
73617180
872018119
93601936
108020306
11252211,080
1210822144
1372231,800
1454243,600
15180

Now please write a simulation program , Simulate the player's game process .

Input format :

Enter the first part to give a legal lottery ticket , The box 3 That's ok 3 Column given 0 to 9 The number of .0 It means that the number in this position can be seen at the beginning , Not the number on the lottery is 0.

The second part gives three positions for players to scrape , It's divided into three lines , Each line is formatted  x y  Give the row number and column number of the position where the player scrapes ( The position in the upper left corner of the title is defined as 1 That's ok 、 The first 1 Column .). The data ensures that the player will not scratch the scratched numbers again .

The last part gives the direction the player chooses , It's an integer : 1 to 3 Indicates the selection of the first horizontal row 、 The second line 、 The third line ,4 to 6 Represents the first vertical column 、 Second column 、 The third column ,7、8 Represent the main diagonal from top left to bottom right and the sub diagonal from top right to bottom left respectively .

Output format :

For every scraping operation , Output the number that the player can see in one line . Finally, for the selected direction , Output the number of gold coins obtained by the player in one line .

sample input :

1 2 3
4 5 6
7 8 0
1 1
2 2
2 3
7

sample output :

1
5
6
180

 

原网站

版权声明
本文为[HBUcs2020]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202141141253050.html