A Ilya and Diplomas
英語比較搓,題意多了好久。就是給你n個人 三個限制,使得滿足最小人數的前提下,是的前面的儘可能的大。
//#include #include
using namespace std;
int main() {
int n,t;
int mi1,mi2,mi3,ma1,ma2,ma3;
scanf("%d",&n);
scanf("%d %d %d %d %d %d",&mi1,&ma1,&mi2,&ma2,&mi3,&ma3);
int sum = n - mi1-mi2-mi3;
if(sum - (ma1-mi1) >=0 ) {sum -= (ma1-mi1);mi1 = ma1;}
else {mi1 += sum; sum = 0;}
if(sum -(ma2-mi2) >=0 ) {sum -= (ma2-mi2 );mi2 = ma2;}
else {mi2 += sum; sum = 0;}
if(sum -(ma3-mi3) >= 0) {sum -= (ma2-mi2 );mi3 = ma3;}
else {mi3 += sum; sum = 0;}
printf("%d %d %d\n",mi1,mi2,mi3);
return 0;}
B Pasha and Tea
計算男女要求的最大的容量,比較w所能給的容量。
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int data[200020];
int main() {
int n,w;
cin>>n>>w;
int i = 0;
for(int i = 0; i < n*2; i++)
scanf("%d",&data[i]);
sort(data,data+n*2);
double an;
if(data[n]/2.0 > data[0]) an = data[0];
else an = data[n]/2.0;
if(w/3.0/double(n) >= an) printf("%lf\n",an*3.0*n);
else printf("%d\n",w);
return 0;
}