题目链接:https://codeforces.com/contest/1215
题目:A
1 #include<iostream> 2 #include<cstdio> 3 #include<ctime> 4 #include<cstring> 5 #include<cstdlib> 6 #include<cmath> 7 #include<queue> 8 #include<stack> 9 #include<map> 10 #include<algorithm> 11 #define Max(a,b) ((a)>(b)?(a):(b)) 12 #define Min(a,b) ((a)<(b)?(a):(b)) 13 #define Mem0(x) memset(x,0,sizeof(x)) 14 #define Mem1(x) memset(x,-1,sizeof(x)) 15 #define MemX(x) memset(x,0x3f,sizeof(x)) 16 using namespace std; 17 typedef long long ll; 18 const int inf=0x3f3f3f; 19 const double pi=acos(-1.0); 20 21 int main() 22 { 23 int a1,a2,k1,k2,n,min1=0,max2=0; 24 cin>>a1>>a2>>k1>>k2>>n; 25 int p=a1*k1+a2*k2-a1-a2; 26 if (n>p){ 27 min1=n-p; 28 if (min1>=a1+a2){ 29 min1=a1+a2; 30 } 31 } 32 if (k1<k2){// 保证第一队罚下一人的需要的黄牌更多 33 int t; 34 t=k1;k1=k2;k2=t; 35 t=a1;a1=a2;a2=t; 36 } 37 int tmp=n,temp=n/k2; 38 if (temp>=a2&&tmp>0){//全下 39 tmp=tmp-k2*a2; 40 max2=max2+a2; 41 if (tmp>=k1){ 42 temp=tmp/k1; 43 max2=max2+min(temp,a1); 44 } 45 } 46 else if (temp<a2&&tmp>0){ //部分下 47 48 max2=max2+temp; 49 } 50 cout<<min1<<" "<<max2<<endl; 51 return 0; 52 }
题目:B
1 #include<iostream> 2 #include<cstdio> 3 #include<ctime> 4 #include<cstring> 5 #include<cstdlib> 6 #include<cmath> 7 #include<queue> 8 #include<stack> 9 #include<map> 10 #include<algorithm> 11 #define Max(a,b) ((a)>(b)?(a):(b)) 12 #define Min(a,b) ((a)<(b)?(a):(b)) 13 #define Mem0(x) memset(x,0,sizeof(x)) 14 #define Mem1(x) memset(x,-1,sizeof(x)) 15 #define MemX(x) memset(x,0x3f,sizeof(x)) 16 using namespace std; 17 typedef long long ll; 18 const int inf=0x3f3f3f; 19 const double pi=acos(-1.0); 20 21 int main() 22 { 23 ll n,x,a=0,b=1,tmp=1; 24 scanf("%lld",&n); 25 for (ll i=1;i<=n;i++){ 26 scanf("%lld",&x); 27 if (x<0) 28 tmp*=-1; 29 if (tmp<0) 30 a++; 31 else 32 b++; 33 } 34 printf("%lld %lld\n",a*b,(n+1)*n/2-a*b); 35 return 0; 36 }