提出 #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';
}
提出情報
コンパイルエラー
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 |
| 結果 |
|
|
| セット名 |
テストケース |
| 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 |