您的位置:首页 > 大数据 > 人工智能

2016 Multi-University Training Contest 2 It's All In The Mind

2016-07-22 09:32 483 查看
Problem Description

Professor Zhang has a number sequence a1,a2,...,an.
However, the sequence is not complete and some elements are missing. Fortunately, Professor Zhang remembers some properties of the sequence:

1. For every i∈{1,2,...,n}, 0≤ai≤100.

2. The sequence is non-increasing, i.e. a1≥a2≥...≥an.

3. The sum of all elements in the sequence is not zero.

Professor Zhang wants to know the maximum value of a1+a2∑ni=1ai among
all the possible sequences.

 

Input

There are multiple test cases. The first line of input contains an integer T,
indicating the number of test cases. For each test case:

The first contains two integers n and m (2≤n≤100,0≤m≤n) --
the length of the sequence and the number of known elements.

In the next m lines,
each contains two integers xi and yi (1≤xi≤n,0≤yi≤100,xi<xi+1,yi≥yi+1),
indicating that axi=yi.

 

Output

For each test case, output the answer as an irreducible fraction "p/q",
where p, q are
integers, q>0.

 

Sample Input

2
2 0
3 1
3 1

 

Sample Output

1/1
200/201坑点:当啊a1有数的时候,a2=a1;
#include<iostream>
#include<cstring>
using namespace std;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int x,y,a[200];
int main()
{
int t,n,m;
cin>>t;
while(t--)
{
int s1=0,s2=0;
memset(a,-1,sizeof a);
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>x>>y;
a[x]=y;
}
if(a[1]!=-1)
{
s1+=a[1];
s2+=a[1];
}
else
{
s1+=100;
s2+=100;
a[1]=100;
}
if(a[2]!=-1)
{
s1+=a[2];
s2+=a[2];
}
else
{
s1+=min(a[1],100);
s2+=min(a[1],100);
}
int ma=0;
for(int i=n;i>=3;i--)
{
//cout<<a[i]<<endl;
            if(a[i]!=-1)
ma=max(a[i],ma);
s2+=ma;
}
int aa=gcd(s1,s2);
cout<<s1/aa<<"/"<<s2/aa<<endl;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: