QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#685739 | #5426. Drain the Water Tank | wyh123 | WA | 0ms | 3952kb | C++20 | 1.2kb | 2024-10-28 21:04:23 | 2024-10-28 21:04:23 |
Judging History
answer
#include <bits/stdc++.h>
#define MAXN 2000
using namespace std;
int n, ans;
long long X[MAXN + 10], Y[MAXN + 10];
long long cross(long long x1, long long y1, long long x2, long long y2) {
return x1 * y2 - x2 * y1;
}
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%lld%lld", &X[i], &Y[i]);
for (int i = 0, j = 1; i < n; i++) {
// j 是下一个 y 值不相等的点
while (Y[i] == Y[j]) j = (j + 1) % n;
int pre = (i + n - 1) % n;
if (Y[i] < Y[pre] && Y[i] < Y[j]) {
// cout << cross(X[i] - X[pre], Y[i] - Y[pre], X[j] - X[i], Y[j] - Y[i]) << endl;
// cout << i + 1 << " " << j + 1 << endl;
// cout << endl;
//(j == (i + 1) % n);
if (cross(X[i] - X[pre], Y[i] - Y[pre], X[j] - X[i], Y[j] - Y[i]) > 0) ans ++;
// if (Y[i] != Y[(i + 1) % n]) {
// // 情况一
//
// if (cross(X[i] - X[pre], Y[i] - Y[pre], X[j] - X[i], Y[j] - Y[i]) > 0) ans++;
// } else {
// // 情况二
// if (X[(i + 1) % n] > X[i]) ans++;
// }
}
}
printf("%d\n", ans);
return 0;
}
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3860kb
input:
6 0 0 1 1 2 1 3 0 3 2 0 2
output:
2
result:
ok 1 number(s): "2"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3760kb
input:
8 4 4 0 4 0 2 1 2 2 2 2 0 3 0 4 0
output:
1
result:
ok 1 number(s): "1"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3892kb
input:
7 1 0 3 4 0 3 1 2 2 3 1 1 0 2
output:
2
result:
ok 1 number(s): "2"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3828kb
input:
6 0 0 2 0 1 1 4 1 5 0 3 4
output:
2
result:
ok 1 number(s): "2"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3948kb
input:
8 0 0 1 0 3 -1 3 0 1 1 4 1 5 0 3 4
output:
2
result:
ok 1 number(s): "2"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3764kb
input:
5 0 0 170 0 140 30 60 30 0 70
output:
1
result:
ok 1 number(s): "1"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3952kb
input:
5 0 0 170 0 140 30 60 30 0 100
output:
1
result:
ok 1 number(s): "1"
Test #8:
score: 0
Accepted
time: 0ms
memory: 3824kb
input:
5 0 0 1 2 1 5 0 2 0 1
output:
1
result:
ok 1 number(s): "1"
Test #9:
score: -100
Wrong Answer
time: 0ms
memory: 3952kb
input:
3 0 0 100 0 0 100
output:
0
result:
wrong answer 1st numbers differ - expected: '1', found: '0'