Advertisement
SuitNdtie

Seven Segment PROG1009

Mar 31st, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.58 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<iostream>
  3. #include<string.h>
  4. using namespace std;
  5. typedef long long int ll;
  6.  
  7. char num[11][3][5] =
  8. {
  9.     {
  10.         {" _ "},
  11.         {"| |"},
  12.         {"|_|"}
  13.     },
  14.     {
  15.         {"   "},
  16.         {"  |"},
  17.         {"  |"},   
  18.     },
  19.     {
  20.         {" _ "},
  21.         {" _|"},
  22.         {"|_ "}
  23.     },
  24.     {
  25.         {" _ "},
  26.         {" _|"},
  27.         {" _|"}
  28.     },
  29.     {
  30.         {"   "},
  31.         {"|_|"},
  32.         {"  |"},   
  33.     },
  34.     {
  35.         {" _ "},
  36.         {"|_ "},
  37.         {" _|"}
  38.     },
  39.     {
  40.         {" _ "},
  41.         {"|_ "},
  42.         {"|_|"}
  43.     },
  44.     {
  45.         {" _ "},
  46.         {"  |"},
  47.         {"  |"}
  48.     },
  49.     {
  50.         {" _ "},
  51.         {"|_|"},
  52.         {"|_|"},   
  53.     },
  54.     {
  55.         {" _ "},
  56.         {"|_|"},
  57.         {" _|"}
  58.     }
  59. };
  60.  
  61. int main()
  62. {
  63.     int n,m;
  64.     scanf("%d %d",&n,&m);
  65.    
  66.     char sevenN[5][50];for(int i=0;i<5;i++)for(int j=0;j<50;j++)sevenN[i][j] = '\0';
  67.     char sevenM[5][50];for(int i=0;i<5;i++)for(int j=0;j<50;j++)sevenM[i][j] = '\0';
  68.    
  69.     int maxlenN = -1;
  70.     int maxlenM = -1;
  71.     for(int i=0;i<4;i++){ //scanN
  72.         cin.getline(sevenN[i],50);
  73.         maxlenN = max(maxlenN,(int)strlen(sevenN[i]));
  74.     }
  75.     for(int i=1;i<4;i++){ //cleaning N
  76.         for(int j=0;j<maxlenN;j++){
  77.             if(sevenN[i][j] == '\0')sevenN[i][j] = ' ';
  78.         }
  79.         sevenN[i][maxlenN] = '\0';
  80.     }
  81.     for(int i=1;i<4;i++){ //scanM
  82.         cin.getline(sevenM[i],50);
  83.         maxlenM = max(maxlenM,(int)strlen(sevenM[i]));
  84.     }
  85.     for(int i=1;i<4;i++){ //cleaning M
  86.         for(int j=0;j<maxlenM;j++){
  87.             if(sevenM[i][j] == '\0')sevenM[i][j] = ' ';
  88.         }
  89.         sevenM[i][maxlenM] = '\0';
  90.     }
  91.     ll valn = 0,valm = 0;
  92.     int indexN = 0;
  93.     int indexM = 0;
  94.     while(indexN < maxlenN){
  95.         char sevenT[5][5];
  96.         for(int i=1;i<=3;i++){
  97.             for(int j=indexN;j<indexN+3;j++){
  98.                 sevenT[i][j-indexN] = sevenN[i][j];
  99.             }
  100.             sevenT[i][3] = '\0';
  101.         }
  102.         int numi;
  103.         bool isnum = false;
  104.         for(numi = 0;numi<=9 && !isnum;numi++){
  105.             int skip = false;
  106.             for(int i=1;i<=3 && !skip;i++){
  107.                 for(int j=1;j<=3 && !skip;j++){
  108.                     if(sevenT[i][j-1] != num[numi][i-1][j-1]){
  109.                         skip = true;
  110.                     }
  111.                 }
  112.             }
  113.             if(!skip){
  114.                 isnum = true;
  115.             }
  116.         }
  117.         valn += numi-1;
  118.         valn *= 10;
  119.         indexN += 4;
  120.     }valn/=10;
  121.    
  122.    
  123.     while(indexM < maxlenM){
  124.         int temp;
  125.         char sevenT[5][5];
  126.         for(int i=1;i<=3;i++){
  127.             for(int j=indexM;j<indexM+3;j++){
  128.                 sevenT[i][j-indexM] = sevenM[i][j];
  129.             }
  130.             sevenT[i][3] = '\0';
  131.         }
  132.         int numi;
  133.         bool isnum = false;
  134.         for(numi = 0;numi<=9 && !isnum;numi++){
  135.             int skip = false;
  136.             for(int i=1;i<=3 && !skip;i++){
  137.                 for(int j=1;j<=3 && !skip;j++){
  138.                     if(sevenT[i][j-1] != num[numi][i-1][j-1]){
  139.                         skip = true;
  140.                     }
  141.                 }
  142.             }
  143.             if(!skip){
  144.                 isnum = true;
  145.             }
  146.         }
  147.         valm += numi-1;
  148.         valm *= 10;
  149.         indexM += 4;
  150.     }valm/=10;
  151.     printf("%lld",valn+valm);
  152.     return 0;
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement