| ||||||||||
| 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 | |||||||||
Re:WA到死 大家帮下忙好么?In Reply To:WA到死 大家帮下忙好么? Posted by:wudired at 2009-07-30 16:04:33 /*
* File: main.cpp
* Author: wudired
*
* Created on 2009年7月30日, 下午12:19
*/
#include <stdlib.h>
#include<stdio.h>
#include<algorithm>
#include<iostream>
using namespace std;
int i,j,k,n,m,z,t;
long long sub,c[2002];
struct data
{
int x,y;
}d[2001];
int lowbit (int x)
{
return x&(-x);
}
void add(int i,int v)
{
while (i<=1000)
{
c[i]=c[i]+v;
i+=lowbit(i);
}
}
long long sum(int i)
{
long long s=0;
while (i>0)
{
s+=c[i];
i-=lowbit(i);
}
return s;
}
bool cmp(const data &a,const data &b)
{
if (a.y==b.y)
return a.x>b.x;
return a.y>b.y;
}
int main(int argc, char** argv)
{
scanf("%d",&t);
for (i=1;i<=t;i++)
{
memset(d,0,sizeof(d));
scanf("%d%d%d",&n,&m,&k);
for (j=1;j<=k;j++)
scanf("%d%d",&d[j].x,&d[j].y);
memset(c,0,sizeof(c));
sort(d+1,d+1+k,cmp);
z=0;
sub=0;
for (j=1;j<=k;j++)
{
sub+=sum(d[j].x-1);
add(d[j].x,1);
}
printf("Test case %d: %lld\n",i,sub);
}
return (EXIT_SUCCESS);
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator