202112-1
#include<iostream>
using namespace std;
#define N 1e7
int a[201];
int n;
int f(int x)
{
int flag=0;
for(int i=0;i<n;i++)
{
if(a[i]<=x&&x<a[i+1])
{
return i;
flag=1;
break;
}
}
if(flag==0) return n;
}
int main()
{
int m;
int sum=0;
cin>>n>>m;
a[0]=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=0;i<n;i++)
{
sum+=f(a[i])*(a[i+1]-a[i]);
}
sum+=f(a[n])*(m-a[n]);
cout<<sum<<endl;
return 0;
}
202112-2
70分题解:
#include<iostream>
#include<cmath>
using namespace std;
#define N 100001
const int M=1e5;
int a[N];
long long f[M];
long long g[M];
int n,m;
int r;
int ff(int x)
{
int flag=0;
for(int i=0;i<n;i++)
{
if(a[i]<=x&&x<a[i+1])
{
return i;
flag=1;
break;
}
}
if(flag==0) return n;
}
int main()
{
cin>>n>>m;
a[0]=f[0]=0;
int err=0;
r=m/(n+1);
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
for(int i=0;i<m;i++)
{
f[i]=ff(i);
g[i]=i/r;
err+=abs(f[i]-g[i]);
}
/* for(int i=n;i<m;i++)
{
f[i]=n;
g[i]=i/r;
err+=abs(f[i]-g[i]);
}*/
cout<<err<<endl;
return 0;
}