有史以来写的最长的代码。。。。1.5WB 啊!!
(2011-11-06 15:49:34)
| RunID |
User |
Problem |
Result |
Memory |
Time |
Language |
Length |
Submit
Time |
| 269534 |
Creek |
A |
Wrong Answer |
|
|
G++ |
15015 B |
2011-11-06 15:47:41 |
600多行代码啊!!!居然就连自己写的样例都过不了!!!
<code>
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<math.h>
#include<string>
#include<algorithm>
using namespace std;
const double eps = 1e-5;
struct point {
double x,
y;
} pnt[5];
struct line {
point a,
b;
};
struct triang {
point a, b,
c;
double
edge[4];
} tr[4];
//quadrangel
struct quadrang {
point a, b,
c, d;
double
edge[5];
} ra;
//get distance
double dist(point a, point b) {
return ((a.x
- b.x)*(a.x - b.x)+(a.y - b.y)*(a.y - b.y));
}
//get triang's edge
triang getBt(triang k) {
k.edge[0] =
dist(k.a, k.b);
k.edge[1] =
dist(k.b, k.c);
k.edge[2] =
dist(k.c, k.a);
return
k;
}
triang getBt2(triang k) {
k.edge[2] =
dist(k.a, k.b);
k.edge[1] =
dist(k.b, k.c);
k.edge[0] =
dist(k.c, k.a);
return
k;
}
triang getBt3(triang k) {
k.edge[2] =
dist(k.a, k.b);
k.edge[0] =
dist(k.b, k.c);
k.edge[1] =
dist(k.c, k.a);
return
k;
}
triang getBt4(triang k) {
k.edge[1] =
dist(k.a, k.b);
k.edge[0] =
dist(k.b, k.c);
k.edge[2] =
dist(k.c, k.a);
return
k;
}
triang getBt5(triang k) {
k.edge[0] =
dist(k.a, k.b);
k.edge[2] =
dist(k.b, k.c);
k.edge[1] =
dist(k.c, k.a);
return
k;
}
void getBq() {
ra.edge[0] =
dist(ra.a, ra.b);
ra.edge[1] =
dist(ra.b, ra.c);
ra.edge[2] =
dist(ra.c, ra.d);
ra.edge[3] =
dist(ra.d, ra.a);
}
//凸包 begin here
double mult(point p1, point p2, point p0) {
return (p1.x
- p0.x)*(p2.y - p0.y)-(p2.x - p0.x)*(p1.y - p0.y);
}
bool operator<(const point &l, const
point &r) {
return l.y -
r.y || (l.y == r.y && l.x
< r.x);
}
int graham(point pnt[], int n) {
int i, len,
k = 0, top = 1;
point
res[5];
sort(pnt,
pnt + n);
if (n == 0)
return 0;
res[0] =
pnt[0];
if (n == 1)
return 1;
res[1] =
pnt[1];
if (n == 2)
return 2;
res[2] =
pnt[2];
for (i = 2;
i < n; i++) {
while (top && mult(pnt[i],
res[top], res[top - 1]))
top--;
res[++top] = pnt[i];
}
len =
top;
res[++top] =
pnt[n - 2];
for (i = n -
3; i >= 0; i--) {
while (top != len && mult(pnt[i],
res[top], res[top - 1]))
top--;
res[++top] = pnt[i];
}
return
top;
}
//凸包 end here
//judge triangle is same?true:false;
//first Judge begin here
bool IsTraSame(triang a, triang b) {
if
(fabs(a.edge[0] - b.edge[0]) < eps
&& fabs(a.edge[1] - b.edge[1])
< eps &&
fabs(a.edge[2] - b.edge[2]) < eps) {
return true;
}
if
(fabs(a.edge[0] - b.edge[0]) < eps
&& fabs(a.edge[1] - b.edge[2])
< eps &&
fabs(a.edge[2] - b.edge[1]) < eps) {
return true;
}
if
(fabs(a.edge[0] - b.edge[1]) < eps
&& fabs(a.edge[1] - b.edge[0])
< eps &&
fabs(a.edge[2] - b.edge[2]) < eps) {
return true;
}
if
(fabs(a.edge[0] - b.edge[1]) < eps
&& fabs(a.edge[1] - b.edge[2])
< eps &&
fabs(a.edge[2] - b.edge[0]) < eps) {
return true;