Monday, December 29, 2008

UVa problem 10851: sample code


001 #include "stdio.h"
002 #include "string"
003 #include "map"
004 #include "iostream"
005
006 using namespace std;
007
008 int main() {
009 char line[100]
010 , ctmp[100]
011 , dtmp[100]
012 , input[10][100]
013 ;
014 int num_msg
015 , i
016 , ii
017 , j
018 , k
019 , b
020 , c
021 , m
022 , n
023 , p
024 , msg_len;
025 ;
026
027 map imap;
028 map::iterator iter;
029
030 for (c = 0; c < 256; c += 1) {
031 ctmp[0] = '/';
032 ctmp[9] = '/';
033
034 for (i = 1; i < 9; i += 1) {
035 ii = i - 1;
036
037 b = c >> ii;
038 b &= 1;
039
040 ctmp[i] = b == 0 ? '/' : '\\';
041 }
042
043 ctmp[10] = 0;
044
045 imap.insert(pair(ctmp, c));
046 }
047
048 fgets(line, 100, stdin);
049 sscanf(line, "%d\n", &num_msg);
050
051 for (i = 0; i < num_msg; ++i) {
052 for (j = 0; j < 10; ++j) {
053 fgets(line, 100, stdin);
054 sscanf(line, "%s\n", &input[j]);
055 }
056
057 fgets(line, 100, stdin);
058
059 msg_len = strlen(input[0]) - 2;
060
061 for (m = 1, p = 0; m <= msg_len; m += 1, p += 1) {
062 for (n = 0; n < 10; n += 1) {
063 ctmp[n] = input[n][m];
064 }
065 ctmp[n] = 0;
066
067 iter = imap.find(ctmp);
068 dtmp[p] = iter->second;
069 }
070 dtmp[p] = 0;
071
072 printf("%s\n", dtmp);
073 }
074
075 return 0;
076 }

No comments:

Post a Comment