记录编号 353907 评测结果 AAAAAAAAAA
题目名称 罗伊德的防晒霜 最终得分 100
用户昵称 GravatarNVIDIA 是否通过 通过
代码语言 C++ 运行时间 0.939 s
提交时间 2016-11-18 21:42:04 内存使用 7.06 MiB
显示代码纯文本
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1e6+10,MOD=19283746;
struct LINE{
	int a,b;
}line[maxn];

int n;
int tmp[maxn];
int ans;
inline int read()
{
	int x,f=1;char ch;
	while(ch=getchar(),!isdigit(ch))if(ch=='-')f=-1;x=ch-48;
	while(ch=getchar(),isdigit(ch))x=x*10+ch-48;return x*f;
}
inline int cmp(const LINE &x,const LINE &y){
	return x.a<y.a;
}

inline void Merge(int l,int m,int r)  
{  
    int i = l;  
    int j = m + 1;  
    int k = l;  
    while(i <= m && j <= r)  
    {  
        if(line[i].b > line[j].b)  
        {  
            tmp[k++] = line[j++].b;  
            ans=(ans+ m-i+1)%MOD;  
        }  
        else  
        {  
            tmp[k++] = line[i++].b;  
        }  
    }  
    while(i <= m) tmp[k++] = line[i++].b;  
    while(j <= r) tmp[k++] = line[j++].b;  
    for(int i=l;i<=r;i++)  
        line[i].b = tmp[i];  
}  
  
inline void Merge_sort(int l,int r)  
{  
    if(l < r)  
    {  
        int m = (l + r) >> 1;  
        Merge_sort(l,m);  
        Merge_sort(m+1,r);  
        Merge(l,m,r);  
    }  
}

inline int D() 
{
    freopen("EOADtulad.in","r",stdin);
    freopen("EOADtulad.out","w",stdout); 
	n=read();
	for(int i=1;i<=n;i++)
	{
		line[i].a=read();
		line[i].b=read();
	}
	sort(line+1,line+n+1,cmp);
	Merge_sort(1,n);
	printf("%d",ans%MOD);
}
int aa=D();
int main(){;}