1.cpp

来自「我的一个acm题目的答案,希望可以和大家一起分享」· C++ 代码 · 共 105 行

CPP
105
字号
#include<stdio.h>
struct room
{ int bi;
int pi;
}a[500]
main()
{
	int t=2,m,f,r,c;
	printf("input t,m,f,c,r,bi,pi:");
	scanf("t=%d\n",&t);
	scanf("m=%d\n",&m);
scanf("f=%d\n",&f);
scanf("c=%d\n",&c);
scanf("r=%d\n",&r);
for(i=0;i<r;i++)
{scanf("bi=%d\n",&a[i].bi);
scanf("pi=%d\n",&a[i].pi);
}
    if(m<0||m>500)
	{	printf("error!");
scanf("m=%d\n",&m);
	}
	 if(f<0||f>500)
	{	printf("error!");
scanf("f=%d\n",&f);
	}
	  if(r<0||r>500)
	{	printf("error!");
scanf("r=%d\n",&r);
	}
	  if(c<0)
	  {
		  printf("error!");
		  scanf("c=%d\n",&c);
	  }
	   if(m<1||m>500)
	{	printf("error!");
scanf("bi=%d\n",&bi);
	}
	    if(m<1||m>1000)
	{	printf("error!");
scanf("pi=%d\n",&pi);
	}

if(c>0)
{
	if(r==1)
	{if(c==1&&m==0&&f==0)
	price=a[0].pi;
	else
		printf("impossible");
	}
	else
		if( 

}
else
{
	if(r==1)
	{	if(m+f<=a[0].bi)
	{if(m>0&&f>0)
			printf("impossible");
			if(m==0||f==0)
				price=a[0].pi;
	}
				else
					printf("impossible");
				}
				else
				{
					for(i=0;i<r;i++)
						sum+=a[i].bi;
					if(sum>=m+f)
					{	for(i=0;i<r-1;i++)
							for(j=0;j<r-i;j++)
								if(a[i].pi/a[i].bi>a[i].pi/a[i]/bi)
								{t=a[i].bi;
								s=a[i].pi;
								a[i].bi=a[j].bi;
								a[i].pi=a[j].pi;
								a[j].bi=t;
								a[j].pi=s;
								}
								sum=0;
								i=0;
								while(m+f>sum)
								sum+=a[i++].bi;
								for(j=0;j<i;j++)
									price+=a[j].pi;
					}
					else 
						printf("impossible");
				
				}
}
				
				







	

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?