uva 101 The Blocks Problem
来源:互联网 发布:c语言所有函数 编辑:程序博客网 时间:2024/05/16 01:32
#include <cstdio>#include <string>#include <vector>#include <iostream>using namespace std;const int maxn = 30;int n;vector<int> pile[maxn]; //每个pile[i]是一个vector//找木块a所在的pile 和height,以引用的形式返回调用者void find_block(int a, int& p, int& h){ for(p = 0; p < n; p++) for(h = 0; h < pile[p].size(); h++) if(pile[p][h] == a) return;}//把第p堆高度为h的木块上方的所有木块移回原位void clear_above(int p, int h){ for(int i = h+1; i < pile[p].size(); i++) { int b = pile[p][i]; pile[b].push_back(b); //把木块b放回原位 } pile[p].resize(h+1); //pile 只应保留下标0~h 的元素}//把第p堆高度为h及其上方的木块整体移动到p2 堆的顶部void pile_onto(int p, int h, int p2){ for(int i = h; i < pile[p].size(); i++) pile[p2].push_back(pile[p][i]); pile[p].resize(h);}void print(){ for(int i = 0; i < n; i++) { printf("%d:", i); for(int j = 0; j < pile[i].size(); j++) printf(" %d", pile[i][j]); printf("\n"); }}int main(){ int a, b; cin >> n; string s1, s2; for(int i = 0; i < n; i++) pile[i].push_back(i); while(cin >> s1 >> a >> s2 >> b) { int pa, pb, ha, hb; find_block(a, pa, ha); find_block(b, pb, hb); if(pa == pb) continue; //非法指令 if(s2 == "onto") clear_above(pb, hb); if(s1 == "move") clear_above(pa, ha); pile_onto(pa, ha, pb); } print(); return 0;}
0 0
- uva 101 the blocks problem
- uva 101 the blocks problem
- UVa 101 The Blocks Problem
- uva 101 - The Blocks Problem
- uva 101 - The Blocks Problem
- UVa 101 - The Blocks Problem
- uva 101 - The Blocks Problem
- UVa 101 - The Blocks Problem
- Uva-101-The Blocks Problem
- Uva 101 - The Blocks Problem
- uva 101 The Blocks Problem
- UVa 101 - The Blocks Problem
- uva 101 - The Blocks Problem
- UVA 101 The Blocks Problem
- uva 101 - The Blocks Problem
- UVa 101 The Blocks Problem
- UVa 101 - The Blocks Problem
- uva 101 The Blocks Problem
- VR播放器
- ios新特征 ARC详解
- 测试hashmap 内存消耗情况 两种遍历方式耗时情况
- 验证书中的例题
- 01背包问题的三种解法
- uva 101 The Blocks Problem
- 平行四边形
- 布局与控件(二)——与你想象不一样的LinearLayout
- 5
- 在Swift怎样创建CocoaPod
- 代码片段:输入的时候自动对银行账号进行格式化
- PELCO-D与PELCO-P协议
- ARC 下注意点
- windows下用caffe加载二进制模型(linux下训练)的问题