usaco Name That Number

为什么要使用如此反人类的输入方式。

/*
ID: modengd1
PROG: namenum
LANG: C++
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    FILE *in = fopen ("namenum.in", "r");
    FILE *in2 = fopen ("dict.txt", "r");
    FILE *out = fopen ("namenum.out","w");
    int nsolutions = 0;
    int numlen;
    char input[20];
    char dict[20];
    char map[256];
    int i, j;
    map['A'] = map['B'] = map['C'] = '2';
    map['D'] = map['E'] = map['F'] = '3';
    map['G'] = map['H'] = map['I'] = '4';
    map['J'] = map['K'] = map['L'] = '5';
    map['M'] = map['N'] = map['O'] = '6';
    map['P'] = map['R'] = map['S'] = '7';
    map['T'] = map['U'] = map['V'] = '8';
    map['W'] = map['X'] = map['Y'] = '9';
    fscanf(in,"%s",input);
    int l1=strlen(input);
    bool finD=false;
    while(~fscanf(in2,"%s",dict))
    {
        int i;
        int l2=strlen(dict);
        if(l1!=l2)
            continue;
        for( i=0;i<l2;i++)
        {
            if(input[i]!=map[dict[i]])
                break;
        }
        if(i==l2)
        {
            fprintf (out, "%s\n", dict);
            finD=true;
        }
    }
    if(!finD)
        fprintf(out,"NONE\n");
    return 0;
}

  

posted on 2015-08-26 20:22  insaneman  阅读(152)  评论(0编辑  收藏  举报

导航