Thursday, December 15, 2016

UVa 12364 In Braile

UVa 12364 In Braile


#include <set>
#include <map>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <cctype>
#include <cstdio>
#include <string>
#include <vector>
#include <cassert>
#include <cstdlib>
#include <cstring>
#include <sstream>
#include <iostream>
#include <algorithm>

using namespace std;

class nmb
{
public:
string br;
int ser;
};

nmb nums[10] = { {".***..",0},{"*.....",1},{"*.*...",2},{"**....",3},{"**.*..",4},{"*..*..",5},{"***...",6},{"****..",7},{"*.**..",8},{".**...",9} };

int main()
{
int n, i, j, k, tst;
string str, temp;
string strs[3];


while (getline(cin,str))
{
if (str == "0")
break;


getline(cin,str);

if (str == "S")
{
getline(cin,str);
for (i=0 ; i<3 ; i++)
{

for (j=0 ; j<str.size() ; j++)
if (!j) cout << nums[str[j]-0].br.substr(i*2,2);
else cout << " " << nums[str[j]-0].br.substr(i*2,2);
cout << endl;
}
}
else
{

getline(cin,strs[0]);
getline(cin,strs[1]);
getline(cin,strs[2]);

for (j=0 ; j<strs[0].size() ; j+=3)
{
temp = "";
for (i=0 ; i<3 ; i++)
{
temp += strs[i].substr( j, 2 );
}
for (k=0 ; k<10 ; k++)
{
if (temp == nums[k].br)
{
cout << k;
break;
}
}
}
cout << endl;

}
}
return 0;
}


Go to link download