比赛 |
防止浮躁的小练习v0.5 |
评测结果 |
AAAAAAAAAA |
题目名称 |
罗伊德的防晒霜 |
最终得分 |
100 |
用户昵称 |
_Itachi |
运行时间 |
1.078 s |
代码语言 |
C++ |
内存使用 |
7.04 MiB |
提交时间 |
2016-10-15 15:36:52 |
显示代码纯文本
#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();
}