| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
这段代码是2684题的,为什么c++总是runtime error?郁闷死了。有哪位大侠肯指点一二?#include <iostream>
#include <cmath>
using namespace std;
struct p
{
int x,y;
}v[12];
bool turn(p a,p b,p c)
{
bool d[4];
d[0]=(a.y==b.y)&&(a.x>b.x)&&(b.x==c.x)&&(c.y>b.y);
d[1]=(a.x==b.x)&&(b.y>a.y)&&(b.y==c.y)&&(c.x>b.x);
d[2]=(a.y==b.y)&&(b.x>a.x)&&(b.x==c.x)&&(b.y>c.y);
d[3]=(a.x==b.x)&&(a.y>b.y)&&(b.y==c.y)&&(b.x>c.x);
if(d[0]||d[1]||d[2]||d[3])
return 1;
else
return 0;
}
int length(p a,p b)
{
if(a.x==b.x)
return abs(a.y-b.y);
else
return abs(a.x-b.x);
}
int main()
{
int g,d[12],w,u[108],direction[12],m,k,mp,f,i,n,line[12],li[12];
while(cin>>n&&n)
{
scanf("%d",&m);
w=0;
for(k=1;k<m+1;k++)
cin>>v[k].x>>v[k].y;
for(k=1;k<m;k++)
line[k]=length(v[k],v[k+1]);
for(k=1;k<m-1;k++)
direction[k]=turn(v[k],v[k+1],v[k+2]);
for(i=0;i<n;i++)
{
scanf("%d",&mp);
if(mp!=m)
continue;
for(k=1;k<mp+1;k++)
cin>>v[k].x>>v[k].y;
for(k=1;k<mp;k++)
li[k]=length(v[k],v[k+1]);
for(k=1;k<mp-1;k++)
d[k]=turn(v[k],v[k+1],v[k+2]);
f=1;
for(k=1;k<mp;k++)
if(li[k]!=line[k])
f=0;
for(k=1;k<mp-1;k++)
if(direction[k]!=d[k])
f=0;
g=1;
for(k=1;k<mp;k++)
if(li[k]!=line[mp-k])
g=0;
for(k=1;k<mp-1;k++)
if(!d[k]!=direction[mp-1-k])
g=0;
if(f||g)
u[w++]=i+1;
}
for(i=0;i<w;i++)
cout<<u[i]<<endl;
printf("+++++\n");
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator