A. Another Server
Time Limit: 1000ms
Memory Limit: 262144KB
64-bit integer IO format:
%lld Java class name:
Main
何老师某天在机房里搞事情的时候,发现机房里有台服务器,从到标号,同时有条网线,从到标号,其中第条网线双向连接着号服务器和号服务器,在一个单位时间内最多能够承受个单位流量。
显然这些服务器之间要进行信息交换,为了测试服务器的抗压能力,你需要帮何老师计算出号服务器在一个单位时间内最多能向号服务器发送多少个单位流量的数据,这里认为数据的传输是瞬间完成的。
(该图引用自百度百科)
Input
第一行是一个正整数,表示测试数据的组数,
对于每组测试数据,
第一行是一个整数,表示服务器的数量,
第二行包含个以空格分隔的正整数,表示网线单位时间内能承受的流量,保证不超过。
Output
对于每组测试数据,输出一个整数,表示号服务器在一个单位时间内最多能向号服务器发送的数据量。
Sample Input
2 2 1 1 3 1 3 2 4
Sample Output
2 4
Hint
表示不大于的最大整数,例如。
题目分析:题目理解略有恶心,就是让你每个主机到下一个主机有两根数据线,每个数据线分别可以传送不同的流量,问你从第一台主机到最后一台主机一次最多可以传送多少流量。很显然是想让你把每两台主机之间的两个数据线的可以传送的流量加在一起,找出最小的输出即可。刚开始不理解题意,wrong到爆炸。
代码:
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int t;
long long a[300],b[300];
cin>>t;
while(t--){
int n;
cin>>n;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
for(int i=1;i<=2*n-2;i++)
cin>>a[i];
for(int i=1,j=1;i<=2*n-2;i=i+2,j++)
b[j] = a[i]+a[i+1];
long long ans = 9999999;
for(int i=1;i<n;i++){
if(b[i] < ans )
ans = b[i];
}
cout<<ans<<endl;
}
return 0;
}