Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream cin("gcl.in");
- ofstream cout("gcl.out");
- int cnt=0,cer;
- string s;
- string comenzi[10];
- int v[26];
- int urm_char(int i){
- while(s[i]==' ' && i<s.size())
- i++;
- return i;
- }
- int urm_spatiu(int i){
- while(s[i]!=' ')
- i++;
- return i;
- }
- void op(int i){
- int sum,nrc,adun, semn,nr,car;
- if(s[i]=='S' && s!="STOP"){
- cnt++;
- i=urm_spatiu(i);
- i=urm_char(i);
- if(cer==2)
- cout<<s[i]<<" = "<<v[s[i]-'a']<<"\n";
- }else if(s[i]>='a' && s[i]<='z'){
- ///initializari
- adun=s[i]-'a';
- sum=0;
- ///citim =
- i++;
- i=urm_char(i);
- i++;
- i=urm_char(i);
- semn=1;
- ///incepem sa caitam
- while(i<s.size()){
- nr=0;
- car=-1;
- while(i<s.size() && s[i]!='+' && s[i]!='-'){
- if(s[i]<='9' && s[i]>='0'){
- nr=nr*10+s[i]-'0';
- }else if(s[i]<='z' && s[i]>='a'){
- car=s[i]-'a';
- }
- i++;
- }
- if(car>=0 && nr>0){
- sum+=semn*(v[car]*nr);
- }else if(car==-1){
- sum+=semn*nr;
- }else{
- sum+=semn*v[car];
- }
- if(s[i]=='+')
- semn=1;
- else{
- semn=-1;
- }
- i++;
- }
- v[adun]=sum;
- }
- }
- int main()
- {
- int sum,nrc,i,adun, semn,nr,car,j,k;
- cin>>cer;
- getline(cin,s);
- while(getline(cin,s)){
- i=urm_char(0);
- if((s[i]>='a' && s[i]<='z')||s[i]=='S' )
- op(i);
- else if(s[i]=='R'){
- if(s[i+6]==' '){
- i=urm_spatiu(i);
- i=urm_char(i);
- }else{
- i+=6;
- }
- nr=0;
- while(i<s.size()){
- nr=nr*10+s[i]-'0';
- i++;
- }
- getline(cin,s);
- nrc=0;
- while(true){
- i=urm_char(0);
- if(s[i]=='S' && s[i+1]=='T')
- break;
- comenzi[nrc]=s;
- nrc++;
- getline(cin,s);
- }
- for(k=0;k<nr;k++){
- for(j=0;j<nrc;j++){
- s=comenzi[j];
- i=urm_char(0);
- op(i);
- }
- }
- }
- }
- if(cer==1)
- cout<<cnt;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement