Pagini recente » Monitorul de evaluare | Cod sursa (job #2683173) | Monitorul de evaluare | Cod sursa (job #2683175) | Cod sursa (job #2680651)
#include <stdio.h> ///Se poate sa ne ceara sa facem pop daca nu avem nici un element in stive?!?
#include <stdlib.h>
#include <ctype.h>
int s1[30000],s2[30000];
int main(){
int n,i,i1,i2;
char c;
FILE *fin, *fout;
fin=fopen("queue.in","r");
fscanf(fin,"%d",&n);
c=fgetc(fin);
i1=0;
i2=0;
fout=fopen("queue.out","w");
for(i=0;i<n;i++){
while(c!='(')
c=fgetc(fin);
c=fgetc(fin); ///Daca e numar operatia e push, daca nu operatia e pop
fprintf(fout,"%d:",i+1);
if(isdigit(c)==1){
while(i2>0){
i2--;
fprintf(fout," pop(2) push(1,%d)",s2[i2]);
s1[i1]=s2[i2];
i1++;
}
fprintf(fout," read(%d) push(1,%d)\n",c-'0',c-'0');
s1[i1]=c-'0';
i1++;
} else{
if(i1>0){
while(i1>1){
i1--;
fprintf(fout," pop(1) push(2,%d)",s1[i1]);
s2[i2]=s1[i1];
i2++;
}
fprintf(fout," pop(1) write(%d)\n",s1[0]);
i1--;
} else{
if(i2>0){
i2--;
fprintf(fout," pop(2) write(%d)\n",s2[i2]);
} else
fprintf(fout," pop(2) write(0)\n");
}
}
}
fclose(fin);
fclose(fout);
return 0;
}