UVa 10851 - 2D Hieroglyphs decoder Solution

#include <iostream>
#include <vector>
#include <string>
using namespace std;
string s;
int m;
int main(){
    int t;
    cin>>t;
    while(t--){
        cin>>s;
        m=s.size();
        vector<vector<int> > a(m,vector<int>(128,1));
        string ans;
        for(int i=0;i<7;i++){
            cin>>s;
            int c=1<<i;
            for(int j=1;j<m-1;j++){
                for(int k=1;k<128;k++){
                    if(s[j]=='\\'&&(k/c)%2==0)
                        a[j][k]=0;
                    else if(s[j]=='/'&&(k/c)%2==1)
                        a[j][k]=0;
                }
            }
        }
        cin>>s>>s;
        for(int i=1;i<m-1;i++){
            for(int j=1;j<128;j++)
                if(a[i][j]){
                    ans.push_back(char(j));
                    break;
                }
        }
        cout<<ans<<endl;
    }
}

Comments