码迷,mamicode.com
首页 > 其他好文 > 详细

hdu 3344 Kakuro Extension Extension

时间:2015-04-20 09:31:17      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:hdu 3344 kakuro exte

Kakuro Extension Extension

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 468    Accepted Submission(s): 240


Problem Description
You know ,I‘m a lazy guy and write problem description is a very very boring thing.So , I would not repeat the rule of Kakuro again , Please look at this.But things are different again,contray to the problem above,this time you should work out the input file according to the output file.
 

Input
The first line of the inputs is T, which stands for the number of test cases you need to solve.
Then T case follow:
Each test case starts with a line contains two numbers N,M (2<=N,M<=100)and then N lines follow, each line contains M columns, either ‘_’ or 1~9. You can assume that the first column of the first line is ’_’.
 

Output
Output N lines, each line contains M parts, each part contains 7 letters. The m parts are seperated by spaces.Output a blank line after each case.
 

Sample Input
2 6 6 _ _ _ _ _ _ _ _ 5 8 9 _ _ 7 6 9 8 4 _ 6 8 _ 7 6 _ 9 2 7 4 _ _ _ 7 9 _ _ 5 8 _ _ _ _ _ _ _ _ _ 1 9 9 1 1 8 6 _ _ 1 7 7 9 1 9 _ 1 3 9 9 9 3 9 _ 6 7 2 4 9 2 _
 

Sample Output
XXXXXXX XXXXXXX 028\XXX 017\XXX 028\XXX XXXXXXX XXXXXXX 022\022 ....... ....... ....... 010\XXX XXX\034 ....... ....... ....... ....... ....... XXX\014 ....... ....... 016\013 ....... ....... XXX\022 ....... ....... ....... ....... XXXXXXX XXXXXXX XXX\016 ....... ....... XXXXXXX XXXXXXX XXXXXXX 001\XXX 020\XXX 027\XXX 021\XXX 028\XXX 014\XXX 024\XXX XXX\035 ....... ....... ....... ....... ....... ....... ....... XXXXXXX 007\034 ....... ....... ....... ....... ....... ....... XXX\043 ....... ....... ....... ....... ....... ....... ....... XXX\030 ....... ....... ....... ....... ....... ....... XXXXXXX
 

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cmath>

using namespace std;

struct node {
    int r;
    int d;
    bool ok;
} a[111][111];

int b[111][111];

int n,m;
int num(int x) {
    if(x==0)return 1;
    int ans=0;
    while(x)
        ans++,x/=10;
    return 3-ans;
}

int main() {
    int t;
    cin>>t;
    while(t--) {
        char c;
        scanf("%d%d",&n,&m);
        memset(a,0,sizeof a);
        memset(b,0,sizeof b);
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {
                scanf(" %c",&c);
                if(c=='_') {
                    a[i][j].ok=1;
                } else {
                    b[i][j]=c-'0';
                }
            }
        }
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {

                if(a[i][j].ok) {
                    for(int k=j+1; k<=m; k++) {
                        if(a[i][k].ok)break;
                        a[i][j].r+=b[i][k];
                    }
                    for(int k=i+1; k<=n; k++) {
                        if(a[k][j].ok)break;
                        a[i][j].d+=b[k][j];
                    }
                }
            }
        }
        for(int i=1; i<=n; i++) {
            for(int j=1; j<=m; j++) {
                if(a[i][j].ok) {
                    if(a[i][j].d) {
                        int h=num(a[i][j].d);
                        for(int i=0; i<h; i++)
                            printf("0");
                        printf("%d",a[i][j].d);
                    } else
                        printf("XXX");
                    if(a[i][j].r==0&&a[i][j].d==0) {
                        printf("XXXX");
                    } else if(a[i][j].d&&a[i][j].r==0)
                        printf("\\XXX");
                    else{
                              printf("\\");
                        int h=num(a[i][j].r);
                        for(int i=0; i<h; i++)
                            printf("0");
                        printf("%d",a[i][j].r);
                    }
                } else if(b[i][j])
                    printf(".......");
                if(j!=m)printf(" ");
                else    printf("\n");
            }
        }
          printf("\n");
    }
    return 0;
}



hdu 3344 Kakuro Extension Extension

标签:hdu 3344 kakuro exte

原文地址:http://blog.csdn.net/acm_baihuzi/article/details/45136277

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!