Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<algorithm>
- #include<string>
- using namespace std;
- int a[40000];
- int main(){
- freopen("table.in","r",stdin);
- freopen("table.out","w",stdout);
- char c;
- scanf("%c",&c);
- int n=0,m=0,max=0,k=0;
- bool f=true;
- while (c!='.'){
- if (c==13 || c==10){
- scanf("%c",&c);
- continue;
- }
- if (c==';'){
- if (f==0)a[m]=2;
- n++;
- f=1;
- m=0;
- scanf("%c",&c);
- continue;
- }
- if (c==','){
- if (f==0)a[m]=2;
- f=true;
- m++;
- if (max<m)max=m;
- scanf("%c",&c);
- continue;
- }
- if(c=='-'){
- if (f==0)a[m]=2;
- k=0;
- f=false;
- scanf("%c",&c);
- continue;
- }
- if (c=='\\'){
- scanf("%c",&c);
- a[m]=2;
- scanf("%c",&c);
- continue;
- }
- if(c>='0' && c<='9'){
- bool ff=0;
- if(c=='0' && k==0){
- ff=1;
- }
- k=c-'0';
- if (a[m]==0)a[m]=1;
- scanf("%c",&c);
- while (c!=',' && c!=';' && c!='.'){
- if (c=='\\'){
- a[m]=2;
- scanf("%c",&c);
- }
- if(!(c>='0' && c<='9'))a[m]=2;
- if (k==0 && c=='0')a[m]=2;
- k=k*10+c-'0';
- if (f==0)k=-k;
- if (k<-32768 || k>32767)a[m]=2;
- if (f==0)k=-k;
- scanf("%c",&c);
- }
- if (f==0)k=-k;
- if (f==0 && k==0)a[m]=2;
- f=0;
- if (k!=0 && ff)a[m]=2;
- k=0;
- f=1;
- if (c==';'){
- n++;
- f=1;
- m=0;
- scanf("%c",&c);
- continue;
- }
- if (c==','){
- f=true;
- m++;
- if (max<m)max=m;
- scanf("%c",&c);
- continue;
- }
- if (c=='.'){
- break;
- }
- }
- a[m]=2;
- scanf("%c",&c);
- }
- if (f==0)a[m]=2;
- max=40000;
- max--;
- while (a[max]==0 && max>-1)max--;
- for(int i=0;i<max;i++)
- if (a[i]==0)cout << "EMPTY,";
- else if (a[i]==1)cout << "NUMBER,";
- else cout << "STRING,";
- if (max>-1)
- if (a[max]==0)cout << "EMPTY";
- else if (a[max]==1)cout << "NUMBER";
- else cout << "STRING";
- cout << ".";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment