⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coding.cpp

📁 ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(ACM-ICPC或ICPC)是由美国计算机协会(ACM)主办的
💻 CPP
字号:
#include<fstream.h>
ifstream in("coding.in");
ofstream out("coding.out");

#define NMAX 50
#define MMAX 20
int     n;
int     num[NMAX];
int     st[NMAX];
long    ans[MMAX];

void cal()
{
  int  i,j;
  long temp,advance;

  for(ans[0]=st[0],i=1;i<MMAX;i++)  ans[i]=0;
  for(i=n-1;i>=2;i--){
      for(advance=st[n-i],j=0;j<MMAX;j++){
	     temp=ans[j]*i+advance;
		 ans[j]=temp%10000;
		 advance=temp/10000;
	  }
  }
  for(advance=1,j=0;j<MMAX;j++){
     temp=ans[j]+advance;
	 if(temp>=10000){ ans[j]=temp-10000; advance=1;} else{ ans[j]=temp; break;}
  }
}

void print(int flag)
{
  int  i;
  if(!flag) out<<',';
  for(i=MMAX-1;i>0;i--) if(ans[i]) break;
  out<<ans[i];
  for(i--;i>=0;i--) out<<(ans[i]/1000)<<(ans[i]%1000)/100<<(ans[i]%100)/10<<ans[i]%10;
}

int  main()
{
  int  i,j;
  int  IsFirstCase;
  char ch;
  IsFirstCase=1;
  while(in>>ch){
	  if(ch=='-') {in>>ch;break;}
	  //输入数据
	  in>>n>>ch>>ch;
	  for(i=0;i<n;i++) in>>num[i]>>ch;
	  in>>ch;
	  //预处理
	  for(i=0;i<n;i++) 
		  for(st[i]=0,j=i+1;j<n;j++) if(num[j]<num[i]) st[i]++;
	  cal();
	  print(IsFirstCase);
	  IsFirstCase=0;
  }
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -