Prob.ID: Go Register Update your info Authors ranklist Search Current Contest Past Contests Schedul
来源:互联网 发布:云 阿里斯托芬 pdf 编辑:程序博客网 时间:2024/06/16 12:33
#include <iostream>
#include <list>
using namespace std;
int eva()
{
int num,i;
cin>>num;//num中保存的是天平两边的重量差
int side=1;//left=-1,right =1;
//side用来标记天平那一侧更轻
int ruler[30];//保存每个砝码的重量
int sum[30];//保存砝码重量的求和
sum[1]=1;
ruler[1]=1;
for (i=2;i<=20;i++) ruler[i]=ruler[i-1]*3;
for (i=2;i<=20;i++) sum[i]=sum[i-1]+ruler[i];
//初始化砝码重量
list<int> left,right; //保存结果
for (i=20;i>0;i--)//从重到轻枚举每一个砝码
{
if (num>=ruler[i])
//如果重量差大于当前砝码,则将它加到较轻的一边
{
//big poise
if (side==1) right.push_front(i);
else left.push_front(i);
num-=ruler[i];
}
else if (num>sum[i-1])
//如果重量差大于所有轻于当前砝码的砝码的质量和,则将当前砝码加到较轻的一边
{
//big poise-r
if (side==1) right.push_front(i);
else left.push_front(i);
num=ruler[i]-num;
side*=-1;//加砝码后,轻重两边将会对调
}
}
list<int>::iterator pList;
char buf[1000];
//显示结果
if (left.empty())
{
cout<<"empty";
}
else
{
pList=left.begin();
sprintf(buf,"%d",ruler[*pList]);
cout<<buf;
pList++;
for (;pList!=left.end();pList++)
{
sprintf(buf,",%d",ruler[*pList]);
cout<<buf;
}
}
cout<<' ';
if (right.empty())
{
cout<<"empty";
}
else
{
pList=right.begin();
sprintf(buf,"%d",ruler[*pList]);
cout<<buf;
pList++;
for (;pList!=right.end();pList++)
{
sprintf(buf,",%d",ruler[*pList]);
cout<<buf;
}
}
cout<<endl;
return 0;
}
int main()
{
int t;
cin>>t;
while(t--) eva();
return 0;
}
#include <list>
using namespace std;
int eva()
{
int num,i;
cin>>num;//num中保存的是天平两边的重量差
int side=1;//left=-1,right =1;
//side用来标记天平那一侧更轻
int ruler[30];//保存每个砝码的重量
int sum[30];//保存砝码重量的求和
sum[1]=1;
ruler[1]=1;
for (i=2;i<=20;i++) ruler[i]=ruler[i-1]*3;
for (i=2;i<=20;i++) sum[i]=sum[i-1]+ruler[i];
//初始化砝码重量
list<int> left,right; //保存结果
for (i=20;i>0;i--)//从重到轻枚举每一个砝码
{
if (num>=ruler[i])
//如果重量差大于当前砝码,则将它加到较轻的一边
{
//big poise
if (side==1) right.push_front(i);
else left.push_front(i);
num-=ruler[i];
}
else if (num>sum[i-1])
//如果重量差大于所有轻于当前砝码的砝码的质量和,则将当前砝码加到较轻的一边
{
//big poise-r
if (side==1) right.push_front(i);
else left.push_front(i);
num=ruler[i]-num;
side*=-1;//加砝码后,轻重两边将会对调
}
}
list<int>::iterator pList;
char buf[1000];
//显示结果
if (left.empty())
{
cout<<"empty";
}
else
{
pList=left.begin();
sprintf(buf,"%d",ruler[*pList]);
cout<<buf;
pList++;
for (;pList!=left.end();pList++)
{
sprintf(buf,",%d",ruler[*pList]);
cout<<buf;
}
}
cout<<' ';
if (right.empty())
{
cout<<"empty";
}
else
{
pList=right.begin();
sprintf(buf,"%d",ruler[*pList]);
cout<<buf;
pList++;
for (;pList!=right.end();pList++)
{
sprintf(buf,",%d",ruler[*pList]);
cout<<buf;
}
}
cout<<endl;
return 0;
}
int main()
{
int t;
cin>>t;
while(t--) eva();
return 0;
}
阅读全文
0 0
- Prob.ID: Go Register Update your info Authors ranklist Search Current Contest Past Contests Schedul
- J of your field rankList
- Go back to past
- ranklist
- info update
- Your ID is under ID protection. Your current version does not support this function. Please download the latest Simplified Chine
- USACO:PROB Your Ride Is Here
- Section 1.1 PROB Your Ride Is Here
- Section 1.1 PROB Your Ride Is Here
- USACO1.1.1 - PROB Your Ride Is Here
- Describe your current position
- Obtain current process ID
- ARM CPSR (Current Program Status Register)
- USACO1.1 PROB Your Ride Is Here 比较分析
- USACO Section 1.1 PROB Your Ride Is Here
- past
- pjsua2 Account Setting ID Register
- Contest RankList -- 2017年成都东软学院ACM冬季校赛(热身赛)
- 欢迎使用CSDN-markdown编辑器
- MATLAB中矩阵写入txt文件的方法
- java内存分配宝典
- Angular 4 表单
- 简述——reactjs项目思路
- Prob.ID: Go Register Update your info Authors ranklist Search Current Contest Past Contests Schedul
- git教程--版本回退
- spring security
- [leetcode] 167.Two Sum II
- @Async不起作用
- c# 微信授权登录与微信支付
- 可持久化线段树(主席树)【舰娘系列】【自编题】
- 剑指offer-翻转单词顺序列
- JS正则表达式完整教程(略长)