#include <stdio.h>
#include <string.h>
char c[30]={'\0'};
int s[14];
int main(){
int n,count=0,i,j,max=0;
for(i=0;i<14;i++)s[i]=0; //初始化
n=1;
while(n!=0){
scanf("%d",&n); //輸入row數
if(n==0)break;
getchar(); //避免scanf的enter被讀入
for(i=0;i<n;i++){
count=0;
for(j=0;j<30;j++)c[j]=' ';
fgets(c,sizeof(c),stdin);
for(j=0;j<sizeof(c);j++){
if(c[j]=='X')count++; //每一次讀入一行,就總X數++
}
s[i]=count; //把每一列的X數都存起來
if(count>max)max=count; //取得每一列的X數最大值
}
/*
for(i=0;i<n;i++){printf("%d ",s[i]);}
printf("\n");
*/
int total=0;
for(i=0;i<n;i++){
total+=max-s[i]; //total計算最多X列的X數量和其他每一列的差加總
}
printf("%d\n",total);
max=0;
}
}
2014年8月29日星期五
[UVa] 414 - Machined Surfaces
訂閱:
發佈留言 (Atom)
-
因為先前寫UVa時,檔案名稱有時會花心思改,有時就直接把題目名稱加上.cpp就貼上了 導致現在有不同的格式出現 現在要處理的事情很簡單 1. 去除空白 2. 將底線 ( _ ) 換成dash ( - ) 經過一番查詢,終於發現最簡單的方法 - re...
-
文章出處: http://infbugs.blogspot.tw/2011/12/c_20.html 謝謝沙耶,解答了我長久以來對於 input/output 的疑惑。 C 語言入門 - 在線上批改系統練功 如何練習使用基本語法 自己出個練習題試著寫...
-
一開始用數學方法推斷得出,設輸入為n k為在n的前一斜線列數,故只要找到 (1+k)*k/2 < n 的最大k值,即可判定 k%2 == 1 => ((2*n)-(k*k)-k)/2 / ((k*k)+(3*k)-(2*n)+4)/2 k%2 ==...
沒有留言:
發佈留言