比赛 Asm_Def战记之透明计算网络 评测结果 AAAATTTTTT
题目名称 Asm_Def排兵布阵 最终得分 40
用户昵称 sro dydxh orz 运行时间 6.948 s
代码语言 C++ 内存使用 3.00 MiB
提交时间 2015-11-01 11:54:31
显示代码纯文本
  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<algorithm>
  6. using namespace std;
  7. const int mod=998244353;
  8. int k;int num[501000],n[101000],nn[101000],nu,ans=0;
  9. int main(){
  10. freopen("asm_formation.in","r",stdin);
  11. freopen("asm_formation.out","w",stdout);
  12. scanf("%d",&k);
  13. for(int i=1;i<=k;i++){
  14. scanf("%d",&n[i]);
  15. nn[i]=n[i];
  16. for(int j=1;j<=n[i];j++)
  17. num[++nu]=i;
  18. }
  19. ans=1;bool flag=0;
  20. while(next_permutation(num+1,num+nu+1)){
  21. /*for(int i=1;i<=nu;i++)
  22. cout<<num[i]<<' ';cout<<endl;*/
  23. flag=0;
  24. for(int i=1;i<=k;i++)
  25. n[i]=nn[i];
  26. int maxn=0;
  27. for(int i=1;i<=nu;i++){
  28. if(flag==1) break;
  29. int temp=num[i];
  30. n[temp]--;
  31. if(n[temp]==0){
  32. if(temp>maxn) maxn=temp;
  33. if(temp<maxn) {flag=1;break;}
  34. }
  35. }
  36. if(flag==1) continue;
  37. ans++;
  38. }
  39. cout<<ans<<endl;
  40. return 0;
  41. }