結果

問題 No.455 冬の大三角
コンテスト
ユーザー startcpp
提出日時 2016-12-07 10:54:45
言語 C++11
(gcc 15.2.0 + boost 1.89.0)
コンパイル:
g++-15 -O2 -lm -std=gnu++11 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 789 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 352 ms
コンパイル使用メモリ 72,688 KB
実行使用メモリ 6,272 KB
最終ジャッジ日時 2026-03-19 11:54:48
合計ジャッジ時間 2,017 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge2_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 54
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:15:13: warning: 'sy' may be used uninitialized [-Wmaybe-uninitialized]
   15 |         int sy, sx;
      |             ^~
main.cpp:38:67: warning: 'sx' may be used uninitialized [-Wmaybe-uninitialized]
   38 |                         if ((sy - i) * (gx - j) == (gy - i) * (sx - j)) continue;
      |                                                               ~~~~^~~~
main.cpp:15:17: note: 'sx' was declared here
   15 |         int sy, sx;
      |                 ^~
main.cpp:16:13: warning: 'gy' may be used uninitialized [-Wmaybe-uninitialized]
   16 |         int gy, gx;
      |             ^~
main.cpp:38:44: warning: 'gx' may be used uninitialized [-Wmaybe-uninitialized]
   38 |                         if ((sy - i) * (gx - j) == (gy - i) * (sx - j)) continue;
      |                                        ~~~~^~~~
main.cpp:16:17: note: 'gx' was declared here
   16 |         int gy, gx;
      |                 ^~

ソースコード

diff #
raw source code

//素直に実装。場合分けでも解けるけど、素朴に実装したほうが速かった。
#include <iostream>
#include <string>
using namespace std;

int h, w;
string s[100];

int main() {
	int i, j;
	
	cin >> h >> w;
	for (i = 0; i < h; i++) cin >> s[i];
	
	int sy, sx;
	int gy, gx;
	int state = 0;
	
	for (i = 0; i < h; i++) {
		for (j = 0; j < w; j++) {
			if (s[i][j] == '*') {
				if (!state) {
					sy = i;
					sx = j;
					state++;
				}
				else {
					gy = i;
					gx = j;
				}
			}
		}
	}
	
	for (i = 0; i < h; i++) {
		for (j = 0; j < w; j++) {
			if (s[i][j] == '*') continue;
			if ((sy - i) * (gx - j) == (gy - i) * (sx - j)) continue;
			s[i][j] = '*';
			break;
		}
		if (j < w) break;
	}
	
	for (i = 0; i < h; i++) {
		cout << s[i] << endl;
	}
	
	return 0;
}
0