比赛 EYOI暨SBOI暑假快乐赛3rd 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 Convoluted Intervals 最终得分 100
用户昵称 遥时_彼方 运行时间 0.854 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2022-06-27 11:03:15
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
char ra;
int rp=0;
inline void read(int &x)
{
	x&=0;
	rp=1;
	ra=getchar();
	while(ra<'0'||ra>'9') 
	{
		if(ra=='-') rp=-1;
		ra=getchar();
	}
	while(ra>='0'&&ra<='9') 
	{
		x=(x<<3)+(x<<1)+(ra^48);
		ra=getchar();
	}
	x*=rp;
} 
inline void write(ll x)
{
	if(x/10) write(x/10);
	putchar(x%10+48);
}
///////////
int nc;
int mc;
int n[200005][2];
ll a[20001];//起始计数
ll b[20001];//结束计数 
ll c[20001];//结束计数 
ll ans[20001];
int main()
{
	freopen("Convoluted_Intervals.in","r",stdin);
	freopen("Convoluted_Intervals.out","w",stdout);
    read(nc);
    read(mc);
    for(int i=1;i<=nc;i++)
    {
    	read(n[i][0]);
    	read(n[i][1]);
    	a[n[i][0]]++;
    	b[n[i][1]+1]++;
		c[n[i][1]]++; 
	}
	for(int i=0;i<=mc;i++)
	{
		if(a[i]) for(int o=0;o<=mc;o++)	ans[i+o]+=a[i]*a[o];
		if(c[i]) for(int o=0;o<=mc+1;o++) ans[i+o]-=c[i]*b[o];
	}
	write(ans[0]);
	putchar(10);
	for(int i=1;i<=(mc<<1);i++)
	{
		ans[i]+=ans[i-1];
		write(ans[i]);
		putchar(10);
	}
	return 0;
}