提出 #52455408


ソースコード 拡げる

// LUOGU_RID: 156108271
#include<bits/stdc++.h>
#define Gc() getchar()
#define Me(x,y) memset(x,y,sizeof(x))
#define Mc(x,y) memcpy(x,y,sizeof(x))
#define d(x,y) ((m)*(x-1)+(y))
#define R(n) (rnd()%(n)+1)
#define Pc(x) putchar(x)
#define LB lower_bound
#define UB upper_bound
#define fi first
#define se second
#define eb emplace_back
#define all(x) x.begin(),x.end()
using namespace std;using ll=long long;using db=double;using lb=long db;using ui=unsigned;using ull=unsigned long long;using pii=pair<int,int>;
const int N=4e5+5,M=2000+5,K=1000+5,mod=1e9+7,Mod=mod-1;const db eps=1e-8;const int INF=1e9+7;mt19937 rnd(181766);
#define Tp template<typename T>
#define Ts template<typename T,typename... Ar>
namespace Debug{
	Tp void _debug(char* f,T t){cerr<<f<<'='<<t<<endl;}
	Ts void _debug(char* f,T x,Ar... y){while(*f!=',') cerr<<*f++;cerr<<'='<<x<<",";_debug(f+1,y...);}
	#ifdef LOCAL
	#define gdb(...) _debug((char*)#__VA_ARGS__,__VA_ARGS__)
	#else 
	#define gdb(...) void()
	#endif
}using namespace Debug;
int n,f[N];
pii A[N];
ll inv[N],q1[N],q2[N],qv[N],q3[N],sum[N];
namespace bit{
	int f[N];void add(int x){while(x<=2*n) f[x]++,x+=x&-x;}
	int qry(int x){int ans=0;while(x) ans+=f[x],x-=x&-x;return ans;}
}
void Solve(){
	int i,j,h;scanf("%d",&n);
	for(i=1;i<=n;i++){
		scanf("%d%d",&A[i].fi,&A[i].se);
		if(A[i].fi<A[i].se) swap(A[i].fi,A[i].se);
	}
	sort(A+1,A+n+1);
	for(i=n;i;i--){
		f[i]=bit::qry(A[i].fi);
		bit::add(A[i].se);
	}
	inv[1]=1;for(i=2;i<=n;i++) inv[i]=(mod-inv[mod%i])*(mod/i)%mod;
	q3[n+1]=1;for(i=n;i;i--) q3[i]=q3[i+1]*(f[i]+2)%mod;
	q2[0]=1;for(i=1;i<=n;i++) q2[i]=q2[i-1]*(f[i]+1)%mod;
	qv[0]=1;for(i=1;i<=n;i++) qv[i]=qv[i-1]*inv[f[i]+1]%mod;
	q1[0]=1;for(i=1;i<=n;i++) q1[i]=q1[i-1]*f[i]%mod;
	ll tot=1;for(i=1;i<=n;i++) tot=tot*(f[i]+1)%mod;
	for(i=1;i<=n;i++) sum[A[i].se]+=q3[i+1]*q2[i-1]%mod;
	for(i=2*n;i;i--) sum[i]=(sum[i]+sum[i+1])%mod;
	for(i=1;i<=n;i++) tot+=sum[A[i].fi]*qv[i]%mod*q1[i-1]%mod;
	/*for(i=1;i<=n;i++)for(j=i+1;j<=n;j++)if(A[i].fi<A[j].se){
		ll mul=1;
		for(h=1;h<i;h++) mul=mul*f[h]%mod;
		for(h=i+1;h<j;h++) mul=mul*(f[h]+1)%mod;
		for(h=j+1;h<=n;h++) mul=mul*(f[h]+2)%mod;
		tot+=mul;
	}*/
	printf("%lld\n",tot%mod);
}
int main(){
	int t=1;
	// scanf("%d",&t);
	while(t--) Solve();
	cerr<<clock()*1.0/CLOCKS_PER_SEC<<'\n';
}

提出情報

提出日時
問題 E - More Peaks More Fun
ユーザ fangxintong
言語 C++ 17 (gcc 12.2)
得点 1400
コード長 2288 Byte
結果 AC
実行時間 62 ms
メモリ 18924 KiB

コンパイルエラー

Main.cpp: In function ‘void Solve()’:
Main.cpp:36:15: warning: unused variable ‘j’ [-Wunused-variable]
   36 |         int i,j,h;scanf("%d",&n);
      |               ^
Main.cpp:36:17: warning: unused variable ‘h’ [-Wunused-variable]
   36 |         int i,j,h;scanf("%d",&n);
      |                 ^
Main.cpp:36:24: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   36 |         int i,j,h;scanf("%d",&n);
      |                   ~~~~~^~~~~~~~~
Main.cpp:38:22: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   38 |                 scanf("%d%d",&A[i].fi,&A[i].se);
      |                 ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 1400 / 1400
結果
AC × 3
AC × 31
セット名 テストケース
Sample sample01.txt, sample02.txt, sample03.txt
All in01.txt, in02.txt, in03.txt, in04.txt, in05.txt, in06.txt, in07.txt, in08.txt, in09.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, sample01.txt, sample02.txt, sample03.txt
ケース名 結果 実行時間 メモリ
in01.txt AC 1 ms 3848 KiB
in02.txt AC 1 ms 3936 KiB
in03.txt AC 1 ms 3952 KiB
in04.txt AC 1 ms 3844 KiB
in05.txt AC 61 ms 18288 KiB
in06.txt AC 60 ms 18316 KiB
in07.txt AC 61 ms 18564 KiB
in08.txt AC 60 ms 18668 KiB
in09.txt AC 59 ms 18248 KiB
in10.txt AC 62 ms 18856 KiB
in11.txt AC 61 ms 18608 KiB
in12.txt AC 62 ms 18924 KiB
in13.txt AC 62 ms 18880 KiB
in14.txt AC 61 ms 18776 KiB
in15.txt AC 62 ms 18632 KiB
in16.txt AC 61 ms 18612 KiB
in17.txt AC 62 ms 18760 KiB
in18.txt AC 61 ms 18608 KiB
in19.txt AC 62 ms 18920 KiB
in20.txt AC 60 ms 18880 KiB
in21.txt AC 38 ms 18776 KiB
in22.txt AC 38 ms 18764 KiB
in23.txt AC 39 ms 18676 KiB
in24.txt AC 40 ms 18052 KiB
in25.txt AC 41 ms 18000 KiB
in26.txt AC 42 ms 18092 KiB
in27.txt AC 38 ms 17920 KiB
in28.txt AC 38 ms 18804 KiB
sample01.txt AC 1 ms 4048 KiB
sample02.txt AC 1 ms 3944 KiB
sample03.txt AC 1 ms 3940 KiB