G: A Towering Problem
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了G: A Towering Problem相关的知识,希望对你有一定的参考价值。
题目描述
J has sent you the art exhibit and it is your job to set up each of the six-box sets at various locations throughout the museum. But when the sculptures arrived at the museum, uncultured barbarians(i.e., delivery men) simply dropped each set of six boxes on the ?oor, not realizing the aesthetic appeal of their original layout. You need to reconstruct each set of two towers, but you have no idea which box goes on top of the other! All you know is the following: for each set of six, you have the heights of the two towers, and you know that in any tower the largest height box is always on the bottom and the smallest height box is on the top. Armed with this information, you hope to be able to ?gure out which boxes go together before tomorrow night’s grand opening gala.
输入
These values will be given in no particular order and no two will be equal.
The last two values (which will never be the same) are the heights of the two towers.
All box heights will be ≤ 100 and the sum of the box heights will equal the sum of the tower heights.
输出
样例输入
12 8 2 4 10 3 25 14
样例输出
12 10 3 8 4 2
CODE:
#include <stdio.h>
int main()
{
int a[6],i,j,k,t1,t2,t;
for(i=0;i<6;i++)
scanf("%d",&a[i]);
scanf("%d",&t1);
scanf("%d",&t2);
for(i=0;i<5;i++)
for(j=i+1;j<6;j++)
if(a[i]<a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<6;i++)
for(j=i+1;j<6;j++)
for(k=j+1;k<6;k++)
{
if(a[i]+a[j]+a[k]==t1)
printf("%d %d %d ",a[i],a[j],a[k]);
}
for(i=0;i<6;i++)
for(j=i+1;j<6;j++)
for(k=j+1;k<6;k++)
{
if(a[i]+a[j]+a[k]==t2)
printf("%d %d %d\n",a[i],a[j],a[k]);
}
return 0;
}
以上是关于G: A Towering Problem的主要内容,如果未能解决你的问题,请参考以下文章
[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段