编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#25443 #1138. ddd和鹦鹉 Accepted 100 105 ms 356 K C++ / 1.8 K Eric 2020-05-01 21:53:34
显示原始代码
#include <iostream>
#include <cmath>
using namespace std;
int crossproduct(int x1, int y1, int x2, int y2) { return x1 * y2 - x2 * y1; }
bool isin(int x1, int y1, int x2, int y2, int x3, int y3, int x, int y) {
    // printf("%d %d %d %d %d %d %d %d ",x1,y1,x2,y2,x3,y3,x,y);
    if ((x == x1) && (y == y1))
        return true;
    if ((x == x2) && (y == y2))
        return true;
    if ((x == x3) && (y == y3))
        return true;
    int temp;
    if (crossproduct(x1 - x2, y1 - y2, x1 - x3, y1 - y3) >= 0) {
        temp = x3;
        x3 = x2;
        x2 = temp;
        temp = y3;
        y3 = y2;
        y2 = temp;
    }
    if (crossproduct(x2 - x1, y2 - y1, x - x1, y - y1) < 0)
        return false;
    if (crossproduct(x3 - x2, y3 - y2, x - x2, y - y2) < 0)
        return false;
    if (crossproduct(x1 - x3, y1 - y3, x - x3, y - y3) < 0)
        return false;
    return true;
}
float dis(int x, int y, int x1, int y1) {
    int dis = (x - x1) * (x - x1) + (y - y1) * (y - y1);
    float ans = sqrt(dis);
    return ans;
}
int main() {
    int ax, bx, cx, ay, by, cy;
    cin >> ax >> ay >> bx >> by >> cx >> cy;
    long int min = 10000000, ans[2];
    int minx = ax, miny = ay, maxx = ax, maxy = ay;
    if (minx > bx)
        minx = bx;
    if (minx > cx)
        minx = cx;
    if (maxx < bx)
        maxx = bx;
    if (maxx < cx)
        maxx = cx;
    if (miny > by)
        miny = by;
    if (miny > cy)
        miny = cy;
    if (maxy < by)
        maxy = by;
    if (maxy < cy)
        maxy = cy;
    for (int i = minx; i <= maxx; ++i)
        for (int j = miny; j <= maxy; ++j) {
            if (isin(ax, ay, bx, by, cx, cy, i, j) == false)
                continue;
            int u = 3 * dis(ax, ay, i, j);
            int v = 2 * dis(bx, by, i, j);
            int w = dis(cx, cy, i, j);
            if (u + v + w < min) {
                min = u + v + w;
                ans[0] = i;
                ans[1] = j;
            }
        }
    cout << ans[0] << " " << ans[1];
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:11 ms
内存:280 KiB

输入文件(1.in

-211 -888 -552 114 -1000 759

答案文件(1.out

-211 -888

用户输出

-211 -888

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:8 ms
内存:356 KiB

输入文件(2.in

900 570 -119 902 -15 327

答案文件(2.out

900 570

用户输出

900 570

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:13 ms
内存:284 KiB

输入文件(3.in

143 999 -171 -662 696 691

答案文件(3.out

143 999

用户输出

143 999

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:17 ms
内存:280 KiB

输入文件(4.in

-498 -472 -789 470 701 656

答案文件(4.out

-498 -472

用户输出

-498 -472

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:17 ms
内存:348 KiB

输入文件(5.in

356 25 218 610 -269 875

答案文件(5.out

356 25

用户输出

356 25

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:8 ms
内存:352 KiB

输入文件(6.in

408 403 453 -659 -405 -338

答案文件(6.out

408 403

用户输出

408 403

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:14 ms
内存:280 KiB

输入文件(7.in

418 -178 954 -328 -600 743

答案文件(7.out

418 -178

用户输出

418 -178

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:6 ms
内存:356 KiB

输入文件(8.in

-188 -598 684 -6 343 -341

答案文件(8.out

-188 -598

用户输出

-188 -598

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:6 ms
内存:264 KiB

输入文件(9.in

-295 -813 85 299 -431 323

答案文件(9.out

-295 -813

用户输出

-295 -813

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:5 ms
内存:236 KiB

输入文件(10.in

549 247 564 -263 -74 75

答案文件(10.out

549 247

用户输出

549 247

系统信息

Exited with return code 0