Submission #937338

#TimeUsernameProblemLanguageResultExecution timeMemory
937338amirhoseinfar1385Zoltan (COCI16_zoltan)C++17
21 / 140
19 ms3832 KiB
#include<bits/stdc++.h> using namespace std; const int maxn=200000+10,mod=1e9+7; long long mypow(long long m,long long y){ if(y==0){ return 1; } long long p=mypow(m,(y>>1)); p*=p; p%=mod; if(y&1){ p*=m; p%=mod; } return p; } long long n,all[maxn],res,ted; void vorod(){ cin>>n; for(long long i=0;i<n;i++){ cin>>all[i]; } if(n>20){ assert(0); } } void solve(){ for(long long i=1;i<(1<<n);i++){ long long sz=__builtin_popcount(i); if(sz<res){ continue; } long long f=1,mx=-1,mn=1e9+5; for(long long j=0;j<n;j++){ if((i>>j)&1){ if(all[j]<=mx&&all[j]>=mn){ f=0; break; } mn=min(mn,all[j]); mx=max(mn,all[j]); } } if(f){ if(sz==res){ ted++; }else{ res=sz; ted=1; } } } } void khor(){ ted=1ll*ted*mypow(2,n-res)%mod; cout<<res<<" "<<ted<<endl; } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("inp.txt","r",stdin); vorod(); solve(); khor(); }
#Verdict Execution timeMemoryGrader output
Fetching results...