1 条题解
-
0
C :
#include <stdio.h> int main() { int a1,a2,k1,k2,n,b,s,b1,s1,q,h; scanf("%d %d %d %d %d",&a1,&a2,&k1,&k2,&n); if(k1>=k2) b=a1,s=a2,b1=k1,s1=k2; else b=a2,s=a1,b1=k2,s1=k1; if(n<s*s1) h=n/s1; else if(n>s*s1&&n<s*s1+b*b1) h=(n-s*s1)/b1+s; else h=s+b; if(n<=b*b1+s*s1-b-s) q=0; else if(n>=b*b1+s*s1-b-s&&n<s*s1+b*b1) q=n-(b*b1+s*s1-b-s); else q=s+b; printf("%d %d",q,h); return 0; }C++ :
#include <stdio.h> void swap(int &x, int &y) { int t; t = x; x = y; y = t; } int min(int x, int y) { if(x > y) return y; else return x; } int max(int x, int y) { if(x > y) return x; else return y; } int main() { int x1, x2; int y1, y2; int n; scanf("%d%d%d%d%d",&x1,&y1,&x2,&y2,&n); if(x2 > y2) { swap(x1, y1); swap(x2, y2); } int minans = 0, maxans = 0; int m = max(0, n - x1*(x2-1) - y1*(y2-1)); minans = min(x1 + y1, m); for(int i = 1; i <= x1; i++) { if(n >= x2) { maxans++; n -= x2; } else break; } for(int i = 1; i <= y1; i++) { if(n >= y2) { maxans++; n -= y2; } else break; } printf("%d %d",minans,maxans); return 0; }
- 1
信息
- ID
- 710
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 9
- 标签
- 提交数
- 20
- 已通过
- 4
- 上传者