Submission #1985297


Source Code Expand

#include <bits/stdc++.h>

const int N=2e5+10,Mod=1e9+7;

struct Node{
	int k,x,l,r;
	bool operator < ( const Node &A ) const { return (r<A.r) || ( r==A.r && l<A.l); }
}p[N];

bool cmpk( const Node &A , const Node &B ) { return A.k<B.k; }
bool cmpx( const Node &A , const Node &B ) { return A.x<B.x; }

int n,f[N],sum[N];

void Init() {
	scanf("%d",&n);
	for (int i=1;i<=n;++i) scanf("%d%d",&p[i].x,&p[i].k);
}

void Solve() {
	std::sort(p+1,p+n+1,cmpk); for (int i=1;i<=n;++i) p[i].k=i;
	std::sort(p+1,p+n+1,cmpx); for (int i=1;i<=n;++i) p[i].x=i;
	int mx=-Inf;
	for (int i=1;i<=n;++i) {
		mx=std::max(mx,p[i].k);
		p[i].r=mx;
	}
	int mn=Inf;
	for (int i=n;i>=1;--i) {
		mn=std::min(mn,p[i].k);
		p[i].l=mn;
	}
	std::sort(p+1,p+n+1);
	f[0]=1; sum[0]=1; int t=1; 
	for (int i=1;i<=n;++i) {
		while (p[t].r==i && t<=n) {
			f[i]=(1ll*f[i]+f[i]+sum[i-1]-sum[p[t].l-1]+f[p[t].l-1])%Mod;
			++t;
		}
		sum[i]=(sum[i-1]+f[i])%Mod;
	}
	printf("%d\n",f[n]);
}

int main() {
	Init();
	Solve();
	return 0;
}

Submission Info

Submission Time
Task E - Mr.Aoki Incubator
User Mcallor
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1045 Byte
Status CE

Compile Error

./Main.cpp: In function ‘void Solve()’:
./Main.cpp:23:10: error: ‘Inf’ was not declared in this scope
  int mx=-Inf;
          ^
./Main.cpp: In function ‘void Init()’:
./Main.cpp:16:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
                ^
./Main.cpp:17:54: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  for (int i=1;i<=n;++i) scanf("%d%d",&p[i].x,&p[i].k);
                                                      ^