69,371
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main()
{
int ncase, nline, maxx, sumx;
int line[20];
scanf("%d", &ncase);
while (ncase--)
{
int i;
maxx = 0;
sumx = 0;
for (i = 0; i < 20; i++)line[i] = 0;
scanf("%d", &nline);
while (getchar() != '\n');
i = 0;
while (i < 2*nline)
{
switch (getchar())
{
case 'X':
line[i%nline]++;
break;
case '\n':
i++;
}
}
for (i = 0; i < nline; i++)
{
sumx += line[i];
if (line[i] > maxx)maxx = line[i];
}
printf("%d\n", maxx*nline - sumx);
}
return 0;
}
#include<stdio.h>
#include<string.h>
char s[1001];
int main()
{
int k,n,i,j,sta=0;
int sum=0;
int max1[100];
int max2[100];
int max;
scanf("%d",&k);
while(k--)
{
scanf("%d",&n);
getchar();
sum=0;sta=0; //这些值需要复位归零
for(i=0;i<100;i++){max1[i]=0;max2[i]=0;}
for(i=0;i<n;i++)
{
gets(s);
for(j=0;s[j]!='\0';j++)
{ if(s[j]==' ')
{
sta++;//统计左边零件本身的空格
}
}
sum=sum+strlen(s);
max1[i]=strlen(s);
}
for(i=0;i<n;i++)
{
gets(s);
for(j=0;s[j]!='X';j++)
{
;
}
int temp=j;
for(;s[j]!='\0';j++)
{ if(s[j]==' ')
{
sta++;//统计右边零件本身的空格
}
}
sum=sum+j-temp;//j-temp为右边零件长度
max2[i]=j-temp;
}
max=0;
for(i=0;i<n;i++)//求出平凑出来的最长的一行的值
if((max1[i]+max2[i])>max)
max=max1[i]+max2[i];
sum=n*max-sum;
printf("%d\n",sum+sta);
}
return 0;
}