[Offer收割]编程练习赛1 register

Ended

Participants:955

Verdict:Accepted
Score:100 / 100
Submitted:2016-03-06 14:44:21

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
using namespace std;
bool exist[10],origin[10];
int a[9];
int cnt = 0;
int ans[9];
void search(int m)
{
    if (cnt > 1) return;
    if (m >= 9)
    {
        if (a[0] + a[1] + a[2] != 15) return;
        if (a[3] + a[4] + a[5] != 15) return;
        if (a[6] + a[7] + a[8] != 15) return;
        if (a[0] + a[3] + a[6] != 15) return;
        if (a[1] + a[4] + a[7] !=15) return;
        if (a[2] + a[5] + a[8] != 15) return;
        if (a[0] + a[4] + a[8] != 15) return;
        if (a[2] + a[4] + a[6] != 15) return;
        cnt++;
        for (int i = 0; i<9; i++) ans[i] = a[i];
    }
    if (origin[m] > 0)
        search(m + 1);
    else
    for (int i = 1; i < 10; i++)
    {
        if (!exist[i])
        {
            a[m] = i;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX