結果
| 問題 |
No.455 冬の大三角
|
| コンテスト | |
| ユーザー |
ManjushriMitra
|
| 提出日時 | 2024-08-10 11:17:57 |
| 言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,976 bytes |
| コンパイル時間 | 2,763 ms |
| コンパイル使用メモリ | 248,880 KB |
| 実行使用メモリ | 6,944 KB |
| 最終ジャッジ日時 | 2024-08-10 11:18:02 |
| 合計ジャッジ時間 | 4,892 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 53 WA * 1 |
コンパイルメッセージ
main.cpp: In function 'int main()':
main.cpp:78:32: warning: 'ans_x' may be used uninitialized [-Wmaybe-uninitialized]
78 | if(y == ans_y && x == ans_x) cout << "*";
| ~~^~~~~~~~
main.cpp:43:16: note: 'ans_x' was declared here
43 | int ans_y, ans_x;
| ^~~~~
main.cpp:78:18: warning: 'ans_y' may be used uninitialized [-Wmaybe-uninitialized]
78 | if(y == ans_y && x == ans_x) cout << "*";
| ~~^~~~~~~~
main.cpp:43:9: note: 'ans_y' was declared here
43 | int ans_y, ans_x;
| ^~~~~
ソースコード
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
#define rep(i,m,n) for(int i=m; i<n; ++i)
#define repl(i,m,n) for(ll i=m; i<n; ++i)
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin(), (a).rend()
const int inf = int(1e9);
int gcd(int a, int b){
return a % b ? gcd(b, a % b) : b;
}
pair<int, int> slope(int y1, int x1, int y2, int x2){
int y = y2 - y1, x = x2 - x1;
if(x == 0) return {inf, 0};
if(y == 0) return {0, inf};
else{
int g = gcd(abs(y), abs(x));
return {y/g, x/g};
}
}
int main(){
int H, W;
cin >> H >> W;
vector<string> S(H);
rep(i, 0, H) cin >> S[i];
int x1 = -1, y1 = -1, x2 = -1, y2 = -1;
rep(y, 0, H) rep(x, 0, W){
if(S[y][x] == '*'){
if(x1 == -1){
x1 = x, y1 = y;
}else{
x2 = x, y2 = y;
break;
}
}
}
int ans_y, ans_x;
if(y1 == y2){
rep(y, 0, H) rep(x, 0, W){
if(y == y1 && x == x1) continue;
if(y == y2 && x == x2) continue;
if(y != y1){
ans_y = y, ans_x = x;
break;
}
}
}else if(x1 == x2){
rep(y, 0, H) rep(x, 0, W){
if(y == y1 && x == x1) continue;
if(y == y2 && x == x2) continue;
if(x != x1){
ans_y = y, ans_x = x;
break;
}
}
}else{
auto s1 = slope(y1, x1, y2, x2);
rep(y, 0, H) rep(x, 0, W){
if(y == y1 && x == x1) continue;
if(y == y2 && x == x2) continue;
auto s = slope(y, x, y1, x1);
if(s != s1){
ans_y = y, ans_x = x;
break;
}
}
}
rep(y, 0, H){
rep(x, 0, W){
if(y == ans_y && x == ans_x) cout << "*";
else cout << S[y][x];
}
cout << endl;
}
return 0;
}
ManjushriMitra