achulkov2

Untitled

Sep 16th, 2018
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.65 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<string>
  4. using namespace std;
  5. int a[40000];
  6.  
  7. int main(){
  8.     freopen("table.in","r",stdin);
  9.     freopen("table.out","w",stdout);
  10.     char c;
  11.     scanf("%c",&c);
  12.     int n=0,m=0,max=0,k=0;
  13.     bool f=true;
  14.     while (c!='.'){
  15.         if (c==13 || c==10){
  16.             scanf("%c",&c);
  17.             continue;
  18.         }
  19.         if (c==';'){
  20.             if (f==0)a[m]=2;
  21.             n++;
  22.             f=1;
  23.             m=0;
  24.             scanf("%c",&c);
  25.             continue;
  26.         }
  27.         if (c==','){
  28.             if (f==0)a[m]=2;
  29.             f=true;
  30.             m++;
  31.             if (max<m)max=m;
  32.             scanf("%c",&c);
  33.             continue;
  34.         }
  35.         if(c=='-'){
  36.             if (f==0)a[m]=2;
  37.             k=0;
  38.             f=false;
  39.             scanf("%c",&c);
  40.             continue;
  41.         }
  42.         if (c=='\\'){
  43.             scanf("%c",&c);
  44.             a[m]=2;
  45.             scanf("%c",&c);
  46.             continue;
  47.         }
  48.         if(c>='0' && c<='9'){
  49.             bool ff=0;
  50.             if(c=='0' && k==0){
  51.                 ff=1;
  52.             }
  53.             k=c-'0';
  54.             if (a[m]==0)a[m]=1;
  55.             scanf("%c",&c);
  56.             while (c!=',' && c!=';' && c!='.'){
  57.                 if (c=='\\'){
  58.                     a[m]=2;
  59.                     scanf("%c",&c);
  60.                 }
  61.                 if(!(c>='0' && c<='9'))a[m]=2;
  62.                 if (k==0 && c=='0')a[m]=2;
  63.                 k=k*10+c-'0';
  64.                 if (f==0)k=-k;
  65.                 if (k<-32768 || k>32767)a[m]=2;
  66.                 if (f==0)k=-k;
  67.                 scanf("%c",&c);
  68.             }
  69.             if (f==0)k=-k;
  70.             if (f==0 && k==0)a[m]=2;
  71.             f=0;
  72.             if (k!=0 && ff)a[m]=2;
  73.             k=0;
  74.             f=1;
  75.             if (c==';'){
  76.                 n++;
  77.                 f=1;
  78.                 m=0;
  79.                 scanf("%c",&c);
  80.                 continue;
  81.             }
  82.             if (c==','){
  83.                 f=true;
  84.                 m++;
  85.                 if (max<m)max=m;
  86.                 scanf("%c",&c);
  87.                 continue;
  88.             }
  89.             if (c=='.'){
  90.                 break;
  91.             }
  92.         }
  93.         a[m]=2;
  94.         scanf("%c",&c);
  95.     }
  96.     if (f==0)a[m]=2;
  97.     max=40000;
  98.     max--;
  99.     while (a[max]==0 && max>-1)max--;
  100.     for(int i=0;i<max;i++)
  101.         if (a[i]==0)cout << "EMPTY,";
  102.         else if (a[i]==1)cout << "NUMBER,";
  103.         else cout << "STRING,";
  104.     if (max>-1)
  105.         if (a[max]==0)cout << "EMPTY";
  106.         else if (a[max]==1)cout << "NUMBER";
  107.         else cout << "STRING";
  108.     cout << ".";
  109.     return 0;
  110. }
Advertisement
Add Comment
Please, Sign In to add comment