#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 150
FILE *fp,*fp1;
main(){
	int i,j,k,m,n,s_top,len,o_i;
	char stack[MAX];
	char output[MAX];
	int imp[MAX];
	char sik[MAX];
	
	fp=fopen("input.txt","r");
	fp1=fopen("output.txt","w");

	fscanf(fp,"%s",sic);
	len=strlen(sic);

	for(i=(int)'0';i<=(int)'9';i++)
		imp[i]=5;
	imp[(int)'(']=3;
	imp[(int)'<']=2;
	imp[(int)'>']=2;
	imp[(int)'%']=1;
	imp[(int)')']=0;
		
	for(i=0,s_top=-1,o_i=-1;i<len;i++){
		if(imp[(int)sik[i]]==5)
			output[++o_i]=sik[i];
		else{
			switch(imp[(int)sik[i]]){
			case 3:

				stack[++s_top]=sik[i];
				break;
			case 2:
				if(imp[(int)stack[s_top]]>=imp[(int)sik[i]]){
					while(imp[(int)stack[s_top]]>=imp[(int)sik[i]])
						output[++o_i]=stack[s_top--];
				}
				else
					stack[++s_top]=sik[i];
				break;
			case 1:
				if(imp[(int)stack[s_top]]>=imp[(int)sik[i]]){
					while(imp[(int)stack[s_top]]>=imp[(int)sik[i]])
						output[++o_i]=stack[s_top--];
				}
				else
					stack[++s_top]=sik[i];
				break;






	
	fprintf(fp1,"Impossible\n");

	fclose(fp);
	fclose(fp1);
}

+ Recent posts