UVa133 - The Dole Queue
来源:互联网 发布:如何利用网络学英语 编辑:程序博客网 时间:2024/05/22 13:11
题意:给出一个数组,分别从1和N开始数k,m,然后将选中的数删除,继续直到数组长度为0
思路:主要是用stl中的list
代码如下:
#include <iostream>#include <fstream>#include <list>#include <iomanip>using namespace std;void solve(int n, int k, int m);int main(){#ifndef ONLINE_JUDGEifstream fin("F:\\OJ\\uva_in.txt");streambuf *old = cin.rdbuf(fin.rdbuf());#endifint n, k, m;while (cin >> n >> k >> m){if (n == 0 && k == 0 && m == 0) break;solve(n, k, m);}#ifndef ONLINE_JUDGEcin.rdbuf(old);#endifreturn 0;}void solve(int n, int k, int m){list<int> l;for (int i = 1; i <= n; i++){l.push_back(i);}list<int>::iterator kit = l.begin(), mit = --l.end();while (l.size() != 0){for (int i = 1; i < k; i++){kit++;if (kit == l.end()) kit = l.begin();}for (int i = 1; i < m; i++){mit--;if (mit == l.end()) mit = --l.end();}if (*kit == *mit){cout << setw(3) << right << *kit;kit = l.erase(kit);if (kit == l.end()) kit = l.begin();mit = kit;mit--;if (mit == l.end()) mit = --l.end();if (l.size() != 0) cout << ",";}else{cout << setw(3) << right << *kit << setw(3) << right << *mit;list<int>::iterator it = kit;it++; if (it == l.end()) it = l.begin();if (it == mit){mit = l.erase(mit);if (mit == l.end()) mit = --l.end();kit = l.erase(kit);if (kit == l.end()) kit = l.begin();mit--;if (mit == l.end()) mit = --l.end();}else{kit = l.erase(kit);if (kit == l.end()) kit = l.begin();mit = l.erase(mit);if (mit == l.end()) mit = --l.end();else { mit--; if (mit == l.end()) mit = --l.end(); }}if (l.size() != 0) cout << ",";}}cout << endl;}
0 0
- uva133 The Dole Queue
- UVA133:The Dole Queue
- UVA133- The Dole Queue
- The Dole Queue UVA133
- UVA133 The Dole Queue
- uva133-The Dole Queue
- UVA133 The Dole Queue
- UVA133 - The Dole Queue
- uva133--The Dole Queue
- UVA133-The Dole Queue
- UVa133 - The Dole Queue
- UVA133 The Dole Queue
- Uva133 The Dole Queue
- UVa133 - The Dole Queue
- The Dole Queue uva133
- UVa133-The Dole Queue
- UVa133 The Dole Queue
- 水题:UVa133-The Dole Queue
- 加速度 陀逻计的设备方向的使用
- 算法导论22.2广度优先搜索 练习总结
- 1030. Travel Plan (30)
- #include<>与#include“ ”的区别
- Bezier曲线曲面的C++实现
- UVa133 - The Dole Queue
- 字符串导出
- 动态站点和静态站点有什么区别
- MOOC课程作业http://mooc.study.163.com/course/USTC-1000002006
- JAVA基础——集合框架
- 简单的网络编程--服务器,客户端呼应
- 13.target/action设计模式
- 虚拟串口软件和串口调试助手的简单使用
- ios layout机制相关方法