解いた問題

4/08/2011

SRM303Div2

250
頑張ってガリガリ計算した。解説を見て、後悔して書き直した。
class Segments {
public:
  string intersection(vector <int> s1, vector <int> s2) {
    string r;
    int left   = max( min(s1[0], s1[2]), min(s2[0], s2[2]) );
    int right  = min( max(s1[0], s1[2]), max(s2[0], s2[2]) );
    int top    = max( min(s1[1], s1[3]), min(s2[1], s2[3]) );
    int bottom = min( max(s1[1], s1[3]), max(s2[1], s2[3]) );
    if(bottom < top || right < left)r = "NO";
    else if(top == bottom && left == right)r = "POINT";
    else r = "SEGMENT";
    return r;
  }
};
500
こういうの大嫌いだわー

0 件のコメント :

コメントを投稿