It’s All In The Mind
题目链接
题目大意
给你一个序列,非增,现在告诉你某些项的值,让你求如下式子的最大值
a1+a2∑ni=1ai
题解
保证前面的尽量大,后面的尽量小就行了。
代码
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int T,a[105],n,m,x,y;
int gcd(int a,int b)
{
if (b==0) return a;
else return gcd(b,a%b);
}
int main()
{
scanf("%d",&T);
while (T--)
{
memset(a,0,sizeof(a));
a[1]=100; a[2]=-1;
scanf("%d%d",&n,&m);
for (int i=0;i<m;i++)
{
scanf("%d%d",&x,&y);
a[x]=y;
}
if (a[2]==-1) a[2]=a[1];
int sum=0,t=0;
for (int i=n;i>=1;i--)
{
if (!a[i]) a[i]=t;
else t=a[i];
}
for (int i=1;i<=n;i++) sum+=a[i];
int c=gcd(sum,a[1]+a[2]);
printf("%d/%d\n",(a[1]+a[2])/c,sum/c);
}
return 0;
}