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

📄 prob3730.cpp

📁 这是北京大学OJ 第3730题的解答,供参考并提出意见.
💻 CPP
字号:
#include<stdio.h>
#include<stdlib.h>
#define TimeLimit 120
#define MAXLINE 100000

void StepLatter(int a[MAXLINE])
{
     for(long i=MAXLINE;i>0;i--)
     a[i]=a[i-1];
     a[0]=0;
}

bool isTimeOverUp(int sum[],int a[])
{int TempSum[MAXLINE]={0};
     for(long i=0;i<MAXLINE;i++)
     {
              TempSum[i]=sum[i]+a[i];
              if(TempSum[i]>TimeLimit)return 1;
     }
     return 0;
}
int main()
{
int n,m;

int sum[MAXLINE]={0};
int a[MAXLINE]={0};

freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);


scanf("%d%d",&n,&m);

int *sch=new int[m];
//printf("%d%d",n,m);

for(int i=0;i<m;i++)
scanf("%d",sch+i);
//for(int i=0;i<m;i++)
//printf("\n%d",sch[i]);

a[0]=80;
for(int i=0;i<m;i++)
{a[sch[i]-1]=40;}



int k;long count=0;
for(long i=0;i<MAXLINE;i++){sum[i]=a[i];}

for (k=0;k<n-1;k++)
{
    while(isTimeOverUp(sum,a))
    {
       StepLatter(a);count++;
    }
//    printf("\n%d",count);

    for(long i=0;i<MAXLINE;i++)
    {sum[i]=sum[i]+a[i];}
}

printf("%d\n",count+sch[m-1]);

return 0;
}


⌨️ 快捷键说明

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