Pagini recente » Cod sursa (job #1482989) | Cod sursa (job #771925) | Cod sursa (job #601569) | Cod sursa (job #176265) | Cod sursa (job #2604889)
#include <bits/stdc++.h>
using namespace std;
ifstream f("procol.in");
ofstream g("procol.out");
const int MOD=666013;
int cer;
int n,k,c;
int v[200005];
map<int,int> dp;
map<int,bool> fost;
long long int exp(long long int a,long long int b){
if(b==0)
return 1;
long long int x=exp(a,b/2);
if(b%2) return (1LL*((1LL*x*x)%MOD)*a)%MOD;
return (1LL*x*x)%MOD;
}
int main()
{
f>>cer;
if(cer==1)
{
f>>n>>k>>c;
int sol=0;
for(int i=1;i<=n;i++){
int maxim=0;
for(int j=1;j<=k;j++)
{
f>>v[j];
maxim=max(maxim,dp[v[j]]);
}
for(int j=1;j<=k;j++)
dp[v[j]]=maxim+1;
sol=max(sol,maxim+1);
}
g<<sol;
}
if(cer==2)
{
f>>k>>c;
int nr=0,x,sol;
for(int i=1;i<=k;i++){
f>>x;
if(fost[x]!=1) nr++,fost[x]=1;
}
nr=c-nr;
sol=exp(c%MOD,c)-exp(nr%MOD,c);
if(sol<0) sol+=MOD;
g<<sol;
}
if(cer==3)
{
}
}