标签:
题目:每行25个字符,左开始为X,右边也是X,中间为空格B;当所有行的左右X相互向内移动,直到有一行左右X相遇;这时所有行中间一共还有多少空格B。
思路:中间空格最少的行一定最先相遇,即X最多的行最先相遇;当X最多行相遇时,每行减少的空格数相同,则用X最多行的X数减去每一行的X数即为每一行剩余的空格数。
可以这样理解,设X最多行的X数为N,则空格数为25-N,那么当X最多行相遇时,每一行可以看做还剩N个字符。则此时每行的空格数为N-X的个数。
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 6 int main() 7 { 8 // freopen("input.txt","r",stdin); 9 string s; 10 int count,n,i,max,j; 11 int aa[100]; 12 while(cin>>n&&n) 13 { 14 getchar(); 15 max=0; 16 memset(aa,0,sizeof(aa)); 17 for(j=0;j<n;j++) 18 { 19 count=0; 20 getline(cin,s); 21 for(i=0;i<s.length();i++) 22 if(s[i]==‘X‘) 23 count++; 24 aa[j]=count; 25 if(max<count) 26 max=count; 27 } 28 count=0; 29 for(i=0;i<n;i++) 30 { 31 count+=max-aa[i]; 32 } 33 cout<<count<<endl; 34 } 35 return 0; 36 }
标签:
原文地址:http://www.cnblogs.com/aiheshan/p/5733859.html