Submission #880334

#TimeUsernameProblemLanguageResultExecution timeMemory
880334josanneo22Fish (IOI08_fish)C++17
0 / 100
223 ms65536 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
	int F,K,M;
	cin>>F>>K>>M;
	vector<vector<int>> cnt(F+1,vector<int>(K+1));
	vector<pair<int,int>> a;
	for(int i=0;i<F;i++){
		int len,gem; cin>>len>>gem;
		a.push_back(make_pair(len,gem));
	}
	sort(a.begin(),a.end());
	for(int i=0;i<F;i++){
		cnt[i][a[i].second]++;
		for(int j=0;j<i;j++){
			if(a[j].first*2<=a[i].first){
				for(int k=0;k<=K;k++){
					cnt[i][k]+=cnt[j][k];
					cnt[j][k]=0;
				}
			}
		}
	}
	int ans=0;
	for(int i=0;i<F;i++){
		int t=1;
		for(int j=0;j<=K;j++){
			t*=(cnt[i][j]+1); 
			t%=M;
		}
		if(t<0) t+=M;
		ans+=(t-1);
	}
	ans-=1;
	if(ans<0) ans+=M;
	while(ans>=M) ans-=M;
	cout<<ans<<'\n';
}
#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...