結果
問題 | No.455 冬の大三角 |
ユーザー |
|
提出日時 | 2017-02-11 07:11:45 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,519 bytes |
コンパイル時間 | 905 ms |
コンパイル使用メモリ | 68,016 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-12-29 11:57:10 |
合計ジャッジ時間 | 3,654 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 45 WA * 9 |
ソースコード
#include <iostream> #include <string> #include <vector> using namespace std; vector<pair<int,int>> calcLine(int h,int w,int x1,int y1,int x2,int y2){ vector<pair<int,int>> vp; if(x1>x2){ int xt=x2; x2=x1; x1=xt; int yt=y2; y2=y1; y1=yt; } if(x1==x2){ for(int i=0;i<h;++i){ if(i!=y1 && i!=y2) vp.push_back(make_pair(x1,i)); } } else if(y1==y2){ for(int i=0;i<w;++i){ if(i!=x1 && i!=x2) vp.push_back(make_pair(i,y1)); } } else { double a=(y2-y1)/(x2-x1); double b=y1-(a*x1); for(int i=0;i<w;++i){ double c=a*i+b; int d=(int)c; double e=c-d; if(e==0 && e<h){ vp.push_back(make_pair(i,e)); } } } return vp; } int main() { int h,w; cin>>h>>w; int x1=-1,y1=-1,x2=-1,y2=-1; for(int i=0;i<h;++i){ string s; cin>>s; for(int j=0;j<s.size();++j){ if(s[j]=='*' && x1==-1){ x1=j; y1=i; } else if(s[j]=='*' && x1!=-1){ x2=j; y2=i; break; } } } vector<pair<int,int>> vp=calcLine(h,w,x1,y1,x2,y2); vector<vector<int>> vv(h,vector<int>(w)); vv[y1][x1]=1; vv[y2][x2]=1; for(int i=0;i<vp.size();++i){ vv[vp[i].second][vp[i].first]=-1; } int f=0; for(int i=0;i<h;++i){ for(int j=0;j<w;++j){ if(vv[i][j]==1){ cout<<"*"; } else if(vv[i][j]==-1){ cout<<"-"; } else if(f==0){ cout<<"*"; f=1; } else { cout<<"-"; } } cout<<endl; } }