这道题我写了两个小时,汗。看来对c的字符串输入输出不是很熟,最后还是用c++输入输出流解决的。题目意思也没有理解清楚,它每进一层可能停留也可能不停留,我刚开始理解的是进了就要停留,汗。

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main()
{
    int n, m, sum, ssum,x, y;
    char a[10];
    scanf("%d",&n);
    getchar();
    while(n--)
    { 
              scanf("%d",&m);
              getchar();
              sum =0, ssum = 0;
              y = 1; 
              for(int i = 1; i <= m; i++)
              {
                      
                      cin >> a;
                      if(strcmp(a,"IN") == 0)
                      {                        
                          y = y*20; 
                         continue;
                      }
                      else
                       if(strcmp(a,"STAY")==0)
                       {
                          cin >> x;
                          sum = x * 60 / y;
                       }  
                      else
                        if(strcmp(a,"OUT") == 0)
                        {
                           y = y / 20;
                          //cout << y << ',';
                           continue;
                        } 
                   
                     // cout << sum <<'!';
                      ssum +=  sum;
               }
              printf("%d\n",ssum);    
    }    
         
        system("pause"); 
      return 0;
}