比赛 防止浮躁的小练习v0.4 评测结果 AAAAAAAAAA
题目名称 罗伊德的防晒霜 最终得分 100
用户昵称 _Itachi 运行时间 1.175 s
代码语言 C++ 内存使用 7.04 MiB
提交时间 2016-10-13 20:24:40
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cctype>
using namespace std;
int _read(){int ret,neg;char ch;ret=neg=0;while(!isdigit(ch=getchar())&&ch!='-');if(ch=='-')neg=1,ch=getchar();while(ret=ret*10+ch-'0',isdigit(ch=getchar()));if(neg)ret=-ret;return ret;}
const int INF=19283746,maxn=1000005;
struct _tree{int x,y;}a[maxn];int n,ans=0,tmp[maxn];
bool _comp(_tree a,_tree b){return a.x<b.x;}
void _run(int l,int r){
	if(l==r)return;int mid=(l+r)>>1;
	_run(l,mid),_run(mid+1,r);
	int i=l,j=mid+1,cnt=0;
	for(;i<=mid&&j<=r;)
		if(a[i].y>a[j].y)
			tmp[++cnt]=a[j++].y,ans=(ans+mid-i+1)%INF;
		else tmp[++cnt]=a[i++].y;
	for(;i<=mid;i++)tmp[++cnt]=a[i].y;
	for(;j<=r;j++)tmp[++cnt]=a[j].y;
	for(i=l;i<=r;i++)a[i].y=tmp[i-l+1];
}
void _work(){
	n=_read();int i,cnt=0;
	for(i=1;i<=n;i++)a[i].x=_read(),a[i].y=_read();
	sort(a+1,a+n+1,_comp);_run(1,n);
	printf("%d\n",ans);
}
bool _Rabit(),_RABIT=_Rabit();int main(){;}
bool _Rabit(){
	freopen("EOADtulad.in","r",stdin);
	freopen("EOADtulad.out","w",stdout);
	_work();
}