[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
|
1-
101-
201-
301-
401-
501-
601-
701-
801-
901-
1001-
1101-
1201-
1301-
1401-
1501-
1601-
1701-
1801-
1901-
2001-
2101-
2201-
2301-
2401-
2501-
2601-
2701-
2801-
2901-
3001-
3101-
3201-
3301-
3401-
3501-
3601-
3701-
3801-
3901-
4001-
4101-
4201-
4301-
4401-
4501-
4601-
4701-
4801-
4901-
5001-
5101-
5201-
5301-
5401-
この機能を使うにはJavaScriptを有効にしてください
|
管理人の独り言(プログラミング関連)
199
:
◆rCEzuNnL0g
:2008/09/02(火) 21:31:34
>>198
俺が馬鹿だっただけだ。
四問目が漸く出来た。
絶対三時間以内に出来ない。
-----
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct point{
int x;
int y;
};
int main(int argc, char **argv){
FILE *in = fopen("input.txt", "r");
FILE *out = fopen("output.txt", "w");
char buff[32];
int height, width;
char **mat;
char **c_mat;
int ret;
int i, j, k;
fgets(buff, sizeof(buff), in);
sscanf(buff, "%d %d", &height, &width);
mat = calloc(height, sizeof(mat[0]));
if(!mat) return -1;
for(i = 0; i < height; i++){
mat[i] = calloc(width, sizeof(mat[0][0]));
if(!mat[i]) return -2;
}
c_mat = calloc(height, sizeof(c_mat[0]));
if(!c_mat) return -3;
for(i = 0; i < height; i++){
c_mat[i] = calloc(width, sizeof(c_mat[0][0]));
if(!c_mat[i]) return -4;
}
for(i = 0; i < height; i++){
for(j = 0; j < width; j++){
mat[i][j] = fgetc(in) - '0' ? ~0 : 0;
fgetc(in);
}
}
//初期化終わり
//出来るだけ0へ
ret = -1;
for(i = 0; i < (1 << height); i++){
int carrent_max = 0;
for(j = 0; j < height; j++){
if((i >> j) & 1){
for(k = 0; k < width; k++){
c_mat[j][k] = ~mat[j][k];
}
}else{
for(k = 0; k < width; k++){
c_mat[j][k] = mat[j][k];
}
}
}
//第二初期化完了
for(j = 0; j < width; j++){
int count = 0;
for(k = 0; k < height; k++){
if(c_mat[k][j] == 0){
count++;
}
}
carrent_max += max(count, height - count);
}
ret = max(ret, carrent_max);
}
fprintf(out, "%d", ret);
return 0;
}
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板