helianthus-tietietie

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

#include<bits/stdc++.h>
using namespace std;
struct vec{
    int x,y;

int main(){
    while(~scanf("%d%d%d",&n,&m,&q)){
        for (int i=1;i<=n;i++) scanf("%d%d",&a[i].x,&a[i].y);
        for (int i=1;i<=m;i++) scanf("%d%d%d%d",&l[i].a.x,&l[i].a.y,&l[i].b.x,&l[i].b.y);
        for (int i=1;i<=q;i++){
            scanf("%d%d",o.x,o.y);
            tot=0; st.clear();
            for (int i=1;i<=n;i++){
                a[i]=a[i]-o;
                b[++tot].v=a[i];
                b[tot].id=i;
                b[tot].type=1;
            }
            for (int i=1;i<=m;i++){
                l[i].a=l[i].a-o; l[i].b=l[i].b-o;
                b[++tot].v=l[i].a;
                b[tot].id=i;
                b[tot].type=0;
                b[++tot].v=l[i].b;
                b[tot].id=i;
                b[tot].type=2;
                if (!pcmp(l[i].a,l[i].b)) swap(b[tot-1].type,b[tot].type);
            }
            sort(b+1,b+tot+1,cmp);

            for (int i=1;i<=n;i++) a[i]=a[i]+o;
            for (int i=1;i<=m;i++) l[i].a=l[i].a+o,l[i].b=l[i].b+o;
        }
    }
}

#include

using namespace std;

struct vec{

int x,y;

int main(){

while(~scanf("%d%d%d",&n,&m,&q)){

for (int i=1;i<=n;i++) scanf("%d%d",&a[i].x,&a[i].y);

for (int i=1;i<=m;i++) scanf("%d%d%d%d",&l[i].a.x,&l[i].a.y,&l[i].b.x,&l[i].b.y);

for (int i=1;i<=q;i++){

scanf("%d%d",o.x,o.y);

tot=0; st.clear();

for (int i=1;i<=n;i++){

a[i]=a[i]-o;

b[++tot].v=a[i];

b[tot].id=i;

b[tot].type=1;

}

for (int i=1;i<=m;i++){

l[i].a=l[i].a-o; l[i].b=l[i].b-o;

b[++tot].v=l[i].a;

b[tot].id=i;

b[tot].type=0;

b[++tot].v=l[i].b;

b[tot].id=i;

b[tot].type=2;

if (!pcmp(l[i].a,l[i].b)) swap(b[tot-1].type,b[tot].type);

}

sort(b+1,b+tot+1,cmp);

for (int i=1;i<=n;i++) a[i]=a[i]+o;

for (int i=1;i<=m;i++) l[i].a=l[i].a+o,l[i].b=l[i].b+o;

}

}

}

附加文件