結果
問題 | No.455 冬の大三角 |
ユーザー |
|
提出日時 | 2017-02-11 07:34:21 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,557 bytes |
コンパイル時間 | 858 ms |
コンパイル使用メモリ | 68,048 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-29 23:45:11 |
合計ジャッジ時間 | 2,688 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 53 WA * 1 |
ソースコード
#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){if(vv[vp[i].second][vp[i].first]!=1) 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;}}