首页 > 其他分享 >Marbles UVA - 10090

Marbles UVA - 10090

时间:2023-04-26 21:45:22浏览次数:48  
标签:10090 Marbles int n1 物品 UVA c1 include gcd

给定两种购买物品的方案:花费 c1元购买 n1 个物品,或者花费 c2c2​ 元购买 n2n2​ 个物品。

方案可以无限使用,询问购买 n个物品至少要多少元,若无法恰好购买到 n 个物品输出 failed

 

 

 

 

 

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
#define int long long
int n;
int gcd(int a,int b,int &x,int &y){
    if (b == 0){
        x=1; y=0; return a;
    }
    int t = gcd(b,a%b,y,x); y -= a/b*x;
    return t;
}
 
 signed main(){
 	int c1,c2,n1,n2;
 	while(cin>>n&&n){
 		int x,y;
 		cin>>c1>>n1>>c2>>n2;
 		int g=gcd(n1,n2,x,y); 
 		if(n%g){
 			cout<<"failed\n";continue;
 		}
 		x=x*n/g ,y= y*n/g ;
 		
 		
 		 int A=(int)ceil(-(double)x/(double)(n2/g)),
 		B=(int)floor((double)y/(double)(n1/g));
 		if(B<A){
 			cout<<"failed\n";continue;
 		}
 		
 		if(c1*(x+A*n2/g) +c2*(y-A*n1/g)<
 			c1*(x+B*n2/g) +c2*(y-B*n1/g)){
 				cout<<(x+A*n2/g) << ' '<< (y-A*n1/g) <<endl;
 			}
 		else{
 			cout<<x+B*n2/g<<' '<<(y-B*n1/g)<<endl;
 		}
 	}
 }

 

 

标签:10090,Marbles,int,n1,物品,UVA,c1,include,gcd
From: https://www.cnblogs.com/towboa/p/17357442.html

相关文章

  • Hyper-drive UVA - 10542
    题意:给定一些个d维的方块,给定两点,求穿过多少方块 转化为(0,0)到(a,b)先考虑二维的 然后容斥原理#include<iostream>#include<algorithm>#include<cstring>#include<cmath>usingnamespacestd;constintN=103;#defineintlonglonginta[N],b[N],n;int......
  • Period UVA - 1371
     题意:给两个串A,B。现在把B串分为若干个部分,对每一个部分进行操作将其变为一个A串,代价为每部分操作次数的最大值求最小代价 #include<iostream>#include<algorithm>#include<cstring>usingnamespacestd;constintN=5003,M=N;#defineintlonglongconstinti......
  • Moving to Nuremberg UVA12223
    题目大意:给出n,一个无根的树,每条边上都有权值。现在每个位置都有一个景点,一个人想在一年之内去cnt[i]次景点,所以接下来给出m,表示说在m个位置上有这个人想去的地方,给出位置以及想去的次数(注意,每去一个景点都要返回自己的住处),namo这个人该住在哪里走的路程才最短。换根dp#incl......
  • Fast Food UVA - 662
    政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往。已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0<i<m。为了提高山区的文化素质,政府又决定从m个村中选择n个村建小学(设0<n≤m<500)。请根据给定的m、n以及所有......
  • Movie collection UVA - 1513
    有n个影碟,标号为1~n,位置为0~n-1,每次取出一个影碟看完后,将其放在最前面(标号为0处),问每个影碟取出前,其位置之前有多少个影碟 开2倍数组,"i放置前面"这个操作add(i,-1),add(newi,1)  #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingn......
  • Prime k-tuple UVA - 1404
        一个步骤: 在[a,b]中标记S的倍数 #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;constintN=1e5+20;constintQ=2e9+2;#defineintlonglongboolvis[Q];intb[N],pm[N],tot=0;......
  • The Bells are Ringing UVA-12119
    已知M为T1,T2,T3的LCM输出满足Ti-Tj<=25的所有可能情况#include<iostream>#include<cmath>#include<algorithm>#include<cstring>usingnamespacestd;constintN=1E6+3;#defineintlonglongintpm[N],tot;intb[N],fac[N],F[N],len,cnt[N]......
  • UVA11014
     给定一个NxNxN的正方体,求出最多能选几个整数点。使得随意两点PQ不会使PQO共线。  F(k)#include<iostream>#include<cmath>#include<algorithm>usingnamespacestd;constintN=5e5;#defineintlonglongintb[N+2],pm[N+2],tot=0;intn;intpow3(intx){......
  • Gauss Prime UVA - 1415
     #include<iostream>#include<cstring>#include<algorithm>usingnamespacestd;constintN=5e4;intb[N+2],pm[N+2],tot=0;voidinit(){b[1]=1;for(inti=2;i<=N;i++){if(b[i])continue;pm[++tot]=i;......
  • Counting Rectangles UVA - 10574
    给出n个点。问选出4个点作为定点,能够组成多少个平行与坐标轴的矩形。 点按照x排序 n^2挑选出垂直x轴的线段,按照y1排序  #include<iostream>#include<cstring>#include<algorithm>#include<vector>usingnamespacestd;constintN=1e5;structT{ intx......