G - 非常可乐
Description
Input
Output
Sample Input
Sample Output
#include<cstdio>
#include<string.h>
using namespace std;
int s,n,m,pre[][],ans[];
int vis[][];
int ans1;
void bfs()
{
int first=,end=,a,b,c;
pre[end][]=s;
pre[end][]=;
pre[end++][]=;
vis[s][]=;
while(first<end)
{
a=pre[first][];
b=pre[first][];
c=pre[first][];
if((a==b&&c==)||(a==c&&b==)||(b==c&&a==))
{
ans1 =ans[first];
return;
}
int a1,b1,c1;
if(a+b>=n)
{
a1=a+b-n;
b1=n;
c1=c;
}
else{
b1=a+b;
a1=;
c1=c;
}
if(vis[a1][b1]==)
{
vis[a1][b1]=;
pre[end][]=a1;
pre[end][]=b1;
pre[end][]=c1;
ans[end++]=ans[first]+;
}
if(a+c>=m)
{
a1=a+c-m;
c1=m;
b1=b;
}
else{
c1=a+c;
a1=;
b1=b;
}
if(vis[a1][b1]==)
{
vis[a1][b1]=;
pre[end][]=a1;
pre[end][]=b1;
pre[end][]=c1;
ans[end++]=ans[first]+;
}
if(b+a>=s)
{
a1=s;
b1=;
c1=c;
}
else{
a1=a+b;
b1=;
c1=c;
}
if(vis[a1][b1]==)
{
vis[a1][b1]=;
pre[end][]=a1;
pre[end][]=b1;
pre[end][]=c1;
ans[end++]=ans[first]+;
}
if(b+c>=m)
{
b1=b+c-m;
c1=m;
a1=a;
}
else{
c1=b+c;
b1=;
a1=a;
}
if(vis[a1][b1]==)
{
vis[a1][b1]=;
pre[end][]=a1;
pre[end][]=b1;
pre[end][]=c1;
ans[end++]=ans[first]+;
}
if(c+a>=s)
{
a1=s;
c1=;
b1=b;
}
else{
a1=a+c;
c1=;
b1=b;
}
if(vis[a1][b1]==)
{
vis[a1][b1]=;
pre[end][]=a1;
pre[end][]=b1;
pre[end][]=c1;
ans[end++]=ans[first]+;
}
if(c+b>=n)
{
c1=c+b-n;
b1=n;
a1=a;
}
else{
b1=b+c;
c1=;
a1=a;
}
if(vis[a1][b1]==)
{
vis[a1][b1]=;
pre[end][]=a1;
pre[end][]=b1;
pre[end][]=c1;
ans[end++]=ans[first]+;
}
first++;
} }
int main()
{
while(scanf("%d %d %d",&s,&n,&m)&&(s+n+m))
{
if(s%)
{
printf("NO\n");
continue;
}
ans1=;
memset(vis,,sizeof(vis));
bfs();
if(ans1) printf("%d\n",ans1);
else printf("NO\n");
}
return ;
}
G - 非常可乐的更多相关文章
- Storyboards Tutorial 03
这一节主要介绍segues,static table view cells 和 Add Player screen 以及 a game picker screen. Introducing Segue ...
- 文件图标SVG
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink ...
- [转]Linux下g++编译与使用静态库(.a)和动态库(.os) (+修正与解释)
在windows环境下,我们通常在IDE如VS的工程中开发C++项目,对于生成和使用静态库(*.lib)与动态库(*.dll)可能都已经比较熟悉,但是,在linux环境下,则是另一套模式,对应的静态库 ...
- CentOS 6.6 升级GCC G++ (当前最新版本为v6.1.0) (完整)
---恢复内容开始--- CentOS 6.6 升级GCC G++ (当前最新GCC/G++版本为v6.1.0) 没有便捷方式, yum update.... yum install 或者 添加y ...
- Linux deepin 下sublimes配置g++ openGL
参考 :http://blog.csdn.net/u010129448/article/details/47754623 ubuntu 下gnome只要将代码中deepin-terminal改为gno ...
- [翻译svg教程]svg 中的g元素
svg 中的<g>元素用来组织svg元素.如果一组svg元素被g元素包裹了,你可以通过对g元素进行变换(transform),被g元素包裹的元素也将被变换,就好这些被svg包裹的元素是一个 ...
- 软件工程:黄金G点小游戏1.0
我们要做的是黄金G点小游戏: N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值. ...
- 2016huasacm暑假集训训练五 G - 湫湫系列故事——减肥记I
题目链接:http://acm.hust.edu.cn/vjudge/contest/126708#problem/G 这是一个01背包的模板题 AC代码: #include<stdio.h&g ...
- 毫秒级的时间处理上G的图片(生成缩略图)
测试环境: 测试图片(30M): 测试计时方法: Stopwatch sw1 = new Stopwatch(); sw1.Start(); //TODO...... sw1.Stop(); stri ...
随机推荐
- blade and soul races guide
Race Four races are available for those who wish to choose the path of martial arts: the careful Gon ...
- C# 图片的裁剪,两个图片合成一个图片
图片的裁剪,两个图片合成一个图片(这是从网上摘的) /// <summary> /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_ne ...
- swift 计算label的行数方法
这主要针对是 cell上label自适应高度, let lineSpaceKey = "lineSpaceKey" extension UILabel{ var lineSpace ...
- spark 1.5.2配置记录
1)slaves # A Spark Worker will be started on each of the machines listed below. dataNode 2)spark-env ...
- 【PCB】【项目记录】AWG任意波形产生器
———————————————————————————————————————————————————————————————————— 原理图V1.0 01.top 已完成原理图绘制,但有相当错误, ...
- Java 中Iterator 、Vector、ArrayList、List 使用深入剖析
标签:Iterator Java List ArrayList Vector 线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一系列相应的类来实现基本的数据结构.这些 ...
- 使用CSS3动画模拟实现小球自由落体效果
使用纯CSS代码模拟实现小球自由落体效果: html代码如下: <div id="ballDiv"> <div id="ball">&l ...
- 【1】springmvc4 + servlet3 零配置全注解入门项目helloword
自从servlet3.0支持注解,使得javaweb项目使用全注解成为可能. 注解化将成为javaweb的发展方向.包括spring去年推出的spring-boot也是全部使用注解. 代码:https ...
- zookeeper+dubbo-admin开发dubbo应用
前面的章节中我们已经安装好了zookeeper,tomcat了.今天我们来实现一个完整的从dubbo消息产生到消费的完整流程. 1.dubbo api 2.dubbo consumer 消费者 3.d ...
- JPA原理理解
从前面一篇<JPA使用入门>了解了JPA的简单使用.要想继续深入的使用JPA,可能了解一点原理对于学习JPA会比较有益处. 这里从JPA的功能来简单阐述JPA的原理. 从<初步了解J ...