模拟水题
1 #include <cstdio> 2 #include <cstring> 3 4 const int maxn=1000000+5; 5 6 int b[maxn]; 7 int e[maxn]; 8 9 int main() 10 { 11 // freopen("icpc.in","r",stdin); 12 // freopen("icpc.out","w",stdout); 13 int B,E; 14 while(scanf("%d%d",&B,&E)!=EOF) 15 { 16 int t=0; 17 int cur=0; 18 int dis; 19 char com[5]; 20 for(int i=0;i<B;i++) 21 { 22 scanf("%d %s",&dis,com); 23 if(com[0]=='L') 24 { 25 while(dis--) 26 { 27 b[++t]=--cur; 28 } 29 } 30 else 31 { 32 while(dis--) 33 { 34 b[++t]=++cur; 35 } 36 } 37 } 38 int ta=t; 39 t=cur=0; 40 for(int i=0;i<E;i++) 41 { 42 scanf("%d%s",&dis,com); 43 if(com[0]=='L') 44 { 45 while(dis--) 46 { 47 e[++t]=--cur; 48 } 49 } 50 else 51 { 52 while(dis--) 53 { 54 e[++t]=++cur; 55 } 56 } 57 } 58 int ans=0; 59 int tb=t; 60 int len=ta>tb?ta:tb; 61 int ra=b[ta],rb=e[tb]; 62 while(++ta<=len) 63 { 64 b[ta]=ra; 65 } 66 while(++tb<=len) 67 { 68 e[tb]=rb; 69 } 70 for(int i=1;i<=len;i++) 71 if(b[i]==e[i]&&b[i-1]!=e[i-1]) ans++; 72 printf("%d ",ans); 73 } 74 return 0; 75 }