hdu acm steps 2.2.3
来源:互联网 发布:树莓派ubuntu系统 ssh 编辑:程序博客网 时间:2024/05/16 20:30
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1997
也是模拟题对每个过程分析清楚便可得到答案
如果全部在A或者C上,那就是满足条件的。
如果最大的在B上则不满足条件。
如果最大的在A上,那么尽可能的在B叠上其余的。然后把最大的给C。
如果最大的在C上,那么第二大一定在B或者C上。
#include<iostream>#include<cstdio>using namespace std;int main(){ int one[4],n[4],h[4][1000]; int a,b,c,i,N; int cas,t; bool flag; scanf("%d",&cas); while(cas--) { a=1; b=2; c=3; one[a]=1,one[b]=1,one[c]=1; scanf("%d",&N); scanf("%d",&n[a]); for(i=one[a];i<=n[a];i++) scanf("%d",&h[a][i]); scanf("%d",&n[b]); for(i=one[b];i<=n[b];i++) scanf("%d",&h[b][i]); scanf("%d",&n[c]); for(i=one[c];i<=n[c];i++) scanf("%d",&h[c][i]); while(1) { if(n[c]==N||n[a]==N)//如果全都在a或c上。 { flag=true; break; } if(n[b]>0&&h[b][one[b]]==N)//假如最大的在b上 { flag=false; break; } if(n[a]>0&&h[a][one[a]]==N)//判断第三种情况 { N--; n[a]--; one[a]++; t=b; b=c; c=t; continue; } if(h[c][one[c]]==N&&n[c]>0)//判断第四种情况 { N--; n[c]--; one[c]++; t=b; b=a; a=t; continue; } } if(flag) printf("true\n"); else printf("false\n"); }}
- hdu acm steps 2.2.3
- hdu ACM Steps 2.2
- hdu acm steps 2.2.1
- hdu acm steps 2.2.2
- hdu acm steps 2.2.4
- hdu acm steps 2.2.5
- hdu acm steps 2.2.6
- hdu acm steps 2.2.7
- hdu acm steps 2.2.8
- hdu acm steps 1.3.3
- hdu acm steps 2.1.3
- hdu 1443 or ACM steps 2.2.2
- [HDU]ACM Steps-Chapter One-Section 3
- hdu ACM Steps 1.1
- hdu ACM Steps 1.2
- hdu ACM Steps 1.3
- hdu ACM Steps 2.1
- hdu ACM Steps 2.3
- [Apache Click快速开发]基于Jquery Dialog的Click Dialog组件
- 使用 JavaScript File API 实现文件上传
- 模板类简单示例
- java新建一个线程
- AT91Bootstrap1.16第二阶段C程序详解之一
- hdu acm steps 2.2.3
- 进制转换
- 插件23:检查链接地址
- 邮箱收件人效果(自动填充)
- erlang浅谈(4)-OTP
- 函数调用 堆栈
- 关于时间一系列类的说明和用法
- 音乐网
- hdu acm steps 2.2.4