제출 #989536

#제출 시각아이디문제언어결과실행 시간메모리
989536huutuanFish (IOI08_fish)C++14
0 / 100
3038 ms65536 KiB
#include<bits/stdc++.h> using namespace std; const int N=5e5+10; int n, m, mod; pair<int, int> a[N]; int cnt[N]; vector<int> vcnt[N]; int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >> n >> m >> mod; for (int i=1; i<=n; ++i) cin >> a[i].first >> a[i].second; sort(a+1, a+n+1); int ans=0; for (int i=1, j=0; i<=n; ++i){ while (a[j+1].first*2<=a[i].first){ ++j; ++cnt[a[j].second]; } int cur=1; vcnt[a[i].second].resize(m+1); for (int k=1; k<=m; ++k){ int mult=cnt[k]-vcnt[a[i].second][k]+1; if (k==a[i].second && cnt[k]!=vcnt[a[i].second][k]) --mult; cur=1ll*cur*mult%mod; vcnt[a[i].second][k]=cnt[k]; } ans=(ans+cur)%mod; } cout << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...