Building Foundation

#include<algorithm>
#include<iostream>
#include<cstring>
#include<fstream>
#include<sstream>
#include<cstdlib>
#include<vector>
#include<string>
#include<cstdio>
#include<bitset>
#include<queue>
#include<stack>
#include<cmath>
#include<map>
#include<set>
#define FF(i, a, b) for(int i=a; i<b; i++)
#define FD(i, a, b) for(int i=a; i>=b; i--)
#define REP(i, n) for(int i=0; i<n; i++)
#define CLR(a, b) memset(a, b, sizeof(a))
#define debug puts("**debug**")
#define LL long long
#define PB push_back
#define MP make_pair
using namespace std;

const int maxn = 666;
int n;
struct Seg
{
    int x1, y1, x2, y2;
    Seg(){}
    Seg(int a, int b, int c, int d) :x1(a), y1(b), x2(c), y2(d){}
}px[maxn], py[maxn];

bool cmpy(const Seg a, const Seg b)
{
    return a.y1 < b.y1;
}

bool judge(int i, int j, int& l, int& r)
{
    if(px[i].y1 == px[j].y1) return 0;
    if(px[i].x1 < px[j].x2 || px[j].x1 < px[i].x2) l = max(px[i].x1, px[j].x1), r = min(px[i].x2, px[j].x2);
    else return 0;
    return r > l;
}

bool ok(int y1, int y2, Seg a, int l, int r)
{
    if(a.x1 >= l && a.x1 <= r && a.y1 <= y1 && a.y2 >= y2) return 1;
    return 0;
}

int main()
{
    while(~scanf("%d", &n))
    {
        int cnt1 = 0, cnt2 = 0;
        int a, b, c, d;
        REP(i, n)
        {
            scanf("%d%d%d%d", &a, &b, &c, &d);
            if(a == c)
            {
                if(b > d) swap(d, b);
                py[cnt2++] = Seg(a, b, c, d);
            }
            else
            {
                if(a > c) swap(a, c);
                px[cnt1++] = Seg(a, b, c, d);
            }
        }
        sort(px, px+cnt1, cmpy);

        LL ans = 0;
        REP(i, cnt1) FF(j, i+1, cnt1)
        {
            int l, r;
            if(judge(i, j, l, r))
            {
                int tmp = 0;
                REP(k, cnt2)
                {
                    if(ok(px[i].y1, px[j].y1, py[k], l, r)) tmp++;
                }
                ans += ((LL)tmp*(tmp-1)) / 2;
            }
        }
        printf("%I64d\n", ans);

    }
    return 0;
}
时间: 2024-10-14 06:38:14

Building Foundation的相关文章

Unity 2d Game Development - epub + code

unity 2D Game Development By Dave Calabrese2014 | 126 Pages | ISBN: 1849692564 Combine Classic 2D With Today's Technology To Build Great Games With Unity's Latest 2D ToolsOverviewBuild A 2D Game Using The Native 2D Development Support In Unity 4.3 Cr

1. Foundation

I must create a system, or be enslav'd by another Man's; I will not Reason and compare: my business is to create. ---Willian Blake Suppose you want to build a computer network, one that has the potential to grow to global proportions1 and to support

Windows Communication Foundation (WCF)和Windows CardSpace的示例程序

微软公司昨天发布了一个Windows Communication Foundation (WCF)和Windows CardSpace的示例程序包,内容极为丰富,从最简单的Hello World到复杂的解决方案一应俱全.对于Windows Communication Foundation (WCF)和Windows CardSpace这两个新东西而言,这些示例程序无疑就是最好的学习资源. 下载地址:http://www.microsoft.com/downloads/details.aspx?F

Chapter 1 Foundation

Foundation I must create a system, or be enslav'd by another Man's ; I will not reason and compare: my business is to create. --- William Blake Suppose  you want to build a computer networkone that has the potential to grow to global proportions and

(转载)解决AndroidStudio导入项目在 Building gradle project info 一直卡住

源地址http://blog.csdn.net/yyh352091626/article/details/51490976 Android Studio导入项目的时候,一直卡在Building gradle project info这一步,主要原因还是因为被墙的结果.gradle官网虽然可以访问,但是速度连蜗牛都赶不上... 解决办法主要有两种,一是直接下载gradle离线包,二是修改项目的gradle-wrapper.properties里的gradle版本为自己电脑已有的版本. 离线包下载导

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

魏兆辉的IOS基础学习笔记之十二 OC语言基础-07 Foundation内存管理

本篇博文,将给大家介绍下再Objective-C中如何使用内存管理.一个程序运行的时候,如果不及时的释放没有用的空间内存.那么,程序会越来 越臃肿,内存占用量会不断升高.我们在使用的时候,就会感觉很卡,最终使得程序运行奔溃.因此,将无效的内存及时清理释放,是非常有必要的. 一个对象在最初创建使用,到最后的回收释放,经历的是怎样一个过程呢?包括:诞生(通过alloc或new方法实现).生存(接收消息并执行操作).交友(通过复合以及向方法传递参数).最终死去(被释放掉). 一.引用计数 在对象创建的

ZOJ 3820 Building Fire Stations

Building Fire Stations Time Limit: 5000ms Memory Limit: 131072KB This problem will be judged on ZJU. Original ID: 382064-bit integer IO format: %lld      Java class name: Main Special Judge Marjar University is a beautiful and peaceful place. There a

黑马程序员--Foundation框架之--NSDirctionary类以及它的子类NSMutableDirctionary类

------IOS培训期待与您交流! ------- 今天来看一下Foundation框架中的NSDirctionary 类,NSMutableDirctionary类,OC中叫字典,字典是无序的,这个和NSArray不一样. 一.NSDirctionary类 1.创建方法 // 字典的创建 NSArray *array1 = [NSArray arrayWithObjects:@"zhangsan",@"zhangfei", nil nil]; NSArray *