Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- using namespace std;
- ifstream cin ("drept.in");
- ofstream cout("drept.out");
- struct punct
- {
- int x;
- int y;
- };
- punct v[210];
- int punctPeSegment(int i, int j)
- {
- if (v[i].x >= min(v[j].x, v[j+1].x) && v[i].x <= max(v[j].x, v[j+1].x))
- if (v[i].y >= min(v[j].y, v[j+1].y) && v[i].y <= max(v[j].y, v[j+1].y))
- return 1;
- return 0;
- }
- int intersectieSegmente(punct a, punct b, punct c, punct d)
- {
- punct aux;
- if (a.x > b.x)
- {
- aux = a;
- a = b;
- b = aux;
- }
- if (c.y > d.y)
- {
- aux = c;
- c = d;
- d = aux;
- }
- if ((d.y > a.y) && (c.y < a.y) )
- {
- if ((c.x < b.x) && (c.x > a.x))
- {
- return 1;
- }
- }
- return 0;
- }
- int main ()
- {
- int C, t, n, xmin, xmax, ymin, ymax, i, d, j, k;
- int poligon, aria, jos, stanga;
- cin>>C>>t;
- for (; t--;)
- {
- cin>>n;
- xmin = 0;
- ymin = 0;
- ymax = 0;
- xmax = 0;
- v[0].x = 0;
- v[0].y = 0;
- for (i=1; i<=n; i++)
- {
- cin>>d;
- if (i%2 == 1)
- {
- v[i].x = v[i-1].x + d;
- v[i].y = v[i-1].y;
- }
- else
- {
- v[i].x = v[i-1].x;
- v[i].y = v[i-1].y + d;
- }
- xmin = min(xmin, v[i].x);
- xmax = max(xmax, v[i].x);
- ymin = min(ymin, v[i].y);
- ymax = max(ymax, v[i].y);
- }
- poligon = 1;
- if (v[n].x != 0 || v[n].y != 0)
- poligon = 0;
- for (i=0; i<n-1; i++)
- {
- for (j=i+2; j<n; j++)
- {
- if (i == 0 && j == n-1)
- continue;
- if (i%2 == j%2)
- {
- if (punctPeSegment(i, j))
- poligon = 0;
- if (punctPeSegment(i+1, j))
- poligon = 0;
- if (punctPeSegment(j, i))
- poligon = 0;
- if (punctPeSegment(j+1, i))
- poligon = 0;
- }
- else
- {
- if (i%2 == 0)
- {
- if (intersectieSegmente(v[i], v[i+1], v[j], v[j+1]))
- poligon = 0;
- }
- else
- {
- if (intersectieSegmente(v[j], v[j+1], v[i], v[i+1]))
- poligon = 0;
- }
- }
- }
- }
- if (C==2)
- {
- /* aria = 0;
- for (i=xmin+1; i<=xmax; i++)
- for (j=ymin+1; j<=ymax; j++)
- {
- }
- */
- }
- if (C == 1)
- {
- cout<<poligon<<" ";
- }
- else
- {
- cout<<aria<<" ";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement