poj 3275

#include<iostream>
#include<fstream>


using namespace std;

int n,m;

int a[1001][1001];
int b[1001][1001];
int map[1001][1001];

void read(){
//    ifstream cin("in.txt");
    int i,j,k,s,t;
    cin>>n>>m;
    for(i=1;i<=m;i++)
    {
        cin>>j>>k;
        a[++a[0][j]][j]=k;
        b[++b[0][k]][k]=j;
        map[j][k]=1;
    }
    for(k=1;k<=n;k++)
        for(i=1;i<=b[0][k];i++)
        {
            s=b[i][k];
            for(j=1;j<=a[0][k];j++)
            {
                t=a[j][k];
                if(!map[s][t])
                {
                    map[s][t]=1;
                    a[++a[0][s]][s]=t;
                    b[++b[0][t]][t]=s;
                }
            }
        }
        int ans=0;
    for(i=1;i<=n;i++)
        ans+=a[0][i]+b[0][i];
    cout<<n*(n-1)/2-ans/2<<endl;

}

int main(){
    read();
    return 0;
}

posted on 2011-05-29 18:26  宇宙吾心  阅读(218)  评论(0)    收藏  举报

导航