# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
112661 | user202729 | Fish (IOI08_fish) | C++17 | 3098 ms | 15332 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
// https://oj.uz/problem/view/IOI08_fish
#include<iostream>
#include<vector>
#include<algorithm>
int main(){
std::ios::sync_with_stdio(0);std::cin.tie(0);
int nf,nk,mod;std::cin>>nf>>nk>>mod;
std::vector<std::vector<int>> lenof(nk); // kind -> list of fish lengths
for(int i=0;i<nf;++i){
int len,kind;std::cin>>len>>kind;--kind;
lenof[kind].push_back(len);
}
for(int k=0;k<nk;++k)
std::sort(begin(lenof[k]),end(lenof[k]));
int ans=0;
for(int k=0;k<nk;++k){
// consider subsets with kind k being the max-kind
auto const& ls=lenof[k];
for(int a=0;a<ls.size();++a){ // assume there are a non-top gems of kind k
int const l2=ls.back()/2; // all non-top fishes must have len <= l2
if(a>0&&ls[a-1]>l2)
break;
// the max will always be ls.back() except for the last iteration
int const lim=std::max(ls.back(),ls[a]*2);
// for all z > lim || (z == lim && index(z) > index(k)) and
// z != k, it should not appear in the subset
// (note: because there may be multiple fishes with same length,
// the kind number the s used as the tie break)
int cur=1; // number of valid subset for current (k,a) pair
for(int z=0;z<nk;++z)if(z!=k){
auto const& ls2=lenof[z];
if(ls2.back()>lim||(ls2.back()==lim&&z>k))
continue;
cur=(cur*(
// number of values <= l2 (can be inside the subset) of kind z
std::upper_bound(begin(ls2),end(ls2),l2)-begin(ls2)
+1LL
))%mod;
}
ans+=cur;
ans%=mod;
}
}
std::cout<<ans<<'\n';
}
/*
5 3 100
2 2
5 1
8 3
4 1
2 3
5 5 100
1 1
1 2
1 3
1 4
2 5
*/
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |