Submission #1187559
Source Code Expand
#include <cstdio>
#include <cmath>
#include <cstring>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <map>
#include <set>
#include <array>
#include <queue>
#include <string>
#include <vector>
#include <numeric>
#include <algorithm>
#include <functional>
#define MOD 1000000007
#define INF 11234567890
#define in std::cin
#define out std::cout
#define rep(i,N) for(LL i=0;i<N;++i)
typedef long long int LL;
typedef std::pair<int, int> P;
int Ax, Ay, Bx, By, N, X[112], Y[112];
LL ans;
bool IsIntersected(int ax,int ay,int bx, int by, int cx, int cy, int dx, int dy)
{
auto ta = (cx - dx) * (ay - cy) + (cy - dy) * (cx - ax);
auto tb = (cx - dx) * (by - cy) + (cy - dy) * (cx - bx);
auto tc = (ax - bx) * (cy - ay) + (ay - by) * (ax - cx);
auto td = (ax - bx) * (dy - ay) + (ay - by) * (ax - dx);
return tc * td < 0 && ta * tb < 0;
}
int main()
{
in >> Ax >> Ay >> Bx >> By >> N;
rep(i, N) { in >> X[i] >> Y[i]; }
int hit = 0;
rep(i, N - 1)
{
if (IsIntersected(X[i], Y[i], X[i + 1], Y[i + 1], Ax, Ay, Bx, By) == true)
{
++hit;
if (ans == 0 && hit == 2)
{
ans = 2;
}
else if (hit > 2 && hit % 2 == 1)
{
++ans;
}
}
}
if (IsIntersected(X[N-1], Y[N-1], X[0], Y[0], Ax, Ay, Bx, By) == true)
{
++hit;
if (ans == 0 && hit == 2)
{
ans = 2;
}
else if (hit > 2 && hit % 2 == 1)
{
++ans;
}
}
out << ans << std::endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
D - 一刀両断 |
User |
Bwambocos |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1480 Byte |
Status |
WA |
Exec Time |
1 ms |
Memory |
256 KB |
Judge Result
Set Name |
All |
Score / Max Score |
0 / 100 |
Status |
|
Set Name |
Test Cases |
All |
00_sample_00.txt, 00_sample_01.txt, 10_rand_00.txt, 10_rand_01.txt, 10_rand_02.txt, 10_rand_03.txt, 10_rand_04.txt, 10_rand_05.txt, 10_rand_06.txt, 10_rand_07.txt, 10_rand_08.txt, 10_rand_09.txt, 10_rand_10.txt, 10_rand_11.txt, 10_rand_12.txt, 10_rand_13.txt, 10_rand_14.txt, 10_rand_15.txt, 10_rand_16.txt, 10_rand_17.txt, 10_rand_18.txt, 10_rand_19.txt, 10_rand_20.txt, 10_rand_21.txt, 10_rand_22.txt, 10_rand_23.txt, 10_rand_24.txt, 10_rand_25.txt, 10_rand_26.txt, 10_rand_27.txt, 10_rand_28.txt, 10_rand_29.txt |
Case Name |
Status |
Exec Time |
Memory |
00_sample_00.txt |
AC |
1 ms |
256 KB |
00_sample_01.txt |
AC |
1 ms |
256 KB |
10_rand_00.txt |
WA |
1 ms |
256 KB |
10_rand_01.txt |
WA |
1 ms |
256 KB |
10_rand_02.txt |
WA |
1 ms |
256 KB |
10_rand_03.txt |
WA |
1 ms |
256 KB |
10_rand_04.txt |
WA |
1 ms |
256 KB |
10_rand_05.txt |
WA |
1 ms |
256 KB |
10_rand_06.txt |
WA |
1 ms |
256 KB |
10_rand_07.txt |
WA |
1 ms |
256 KB |
10_rand_08.txt |
WA |
1 ms |
256 KB |
10_rand_09.txt |
WA |
1 ms |
256 KB |
10_rand_10.txt |
WA |
1 ms |
256 KB |
10_rand_11.txt |
WA |
1 ms |
256 KB |
10_rand_12.txt |
WA |
1 ms |
256 KB |
10_rand_13.txt |
WA |
1 ms |
256 KB |
10_rand_14.txt |
WA |
1 ms |
256 KB |
10_rand_15.txt |
WA |
1 ms |
256 KB |
10_rand_16.txt |
WA |
1 ms |
256 KB |
10_rand_17.txt |
AC |
1 ms |
256 KB |
10_rand_18.txt |
WA |
1 ms |
256 KB |
10_rand_19.txt |
WA |
1 ms |
256 KB |
10_rand_20.txt |
AC |
1 ms |
256 KB |
10_rand_21.txt |
WA |
1 ms |
256 KB |
10_rand_22.txt |
AC |
1 ms |
256 KB |
10_rand_23.txt |
WA |
1 ms |
256 KB |
10_rand_24.txt |
WA |
1 ms |
256 KB |
10_rand_25.txt |
WA |
1 ms |
256 KB |
10_rand_26.txt |
WA |
1 ms |
256 KB |
10_rand_27.txt |
WA |
1 ms |
256 KB |
10_rand_28.txt |
WA |
1 ms |
256 KB |
10_rand_29.txt |
WA |
1 ms |
256 KB |