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 ...
随机推荐
- 解决OS X系统连接VPN后无法访问内网资源的问题
该问题是第一次使用OS X系统连接VPN遇到的问题,现象是连接VPN成功,但无法访问公司的内网资源. 主要原因还是VPN设置上的问题,在系统偏好设置中打开VPN连接,里面有个高级设置,如图: 点击高级 ...
- scala getter and setter
package exp { object Main { def main(args: Array[String]): Unit = { B.name ="Fred"; printl ...
- CSS网页布局全精通
在本文中将使用四种常见的做法,结合CSS于结构化标记语法制作两栏布局.很快地就会发现,不用嵌套表格,间隔用的GIF也能做出分栏版面布局. 相关文章:CSS网页布局开发小技巧24则 稍后在"技 ...
- Epson机械手4轴6轴示意图
世界坐标系(World Coordinate System,简称WCS)是由三个垂直并相交的坐标轴X轴.Y轴和Z轴构成,一般显示在绘图区域的左下角,如图1-7所示.X轴和Y轴的交点就是坐标原点O,X轴 ...
- Android下载压缩文件与解压案例
ackage com.example.jsontest.biz; import java.io.BufferedInputStream; import java.io.BufferedOutputSt ...
- APIJSON,让接口见鬼去吧!
我: APIJSON,让接口见鬼去吧! https://github.com/TommyLemon/APIJSON 服务端: 什么鬼? 客户端: APIJSON是啥? 我: APIJSON是一种JSO ...
- Bootstrap <基础八>图片
Bootstrap 提供了三个可对图片应用简单样式的 class: .img-rounded:添加 border-radius:6px 来获得图片圆角. .img-circle:添加 border-r ...
- Volley之 JsonRequest 解析JSON 数据
ReqestQueue 和 JsonRequest String jsonUrl = "http://ip.taobao.com/service/getIpInfo.php?ip=63.22 ...
- http://tool.oschina.net 在线API文档库java jquery ,php,很全的文档库
http://tool.oschina.net 1.6API文档(中文)的下载地址: ZIP格式:http://download.java.net/jdk/jdk-api-localizations ...
- Delphi编译的程序如何获取管理员权限
1.制作manifest文件 <?xml version="1.0" encoding="UTF-8" standalone="yes" ...