假期训练——The Dole Queue UVA - 133 模拟

来源:互联网 发布:淘宝平台入驻协议 编辑:程序博客网 时间:2024/06/05 04:37

题目连接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=69



解题思路:

简单模拟,直接模拟环,注意选择同一人特判。


#include <iostream> #include <cstdio>#include <cstdlib>#include <cmath>#include <iomanip>#include <algorithm>#include <climits>#include <cstring>#include <string>#include <set>#include <map>#include <queue>#include <stack>#include <vector>#include <list>#define rep(i,m,n) for(int i=m;i<=n;i++)#define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++)const int inf_int = 2e9;const long long inf_ll = 2e18;#define inf_add 0x3f3f3f3f#define mod 1000000007#define pb push_back#define mp make_pair#define fi first#define se second#define pi acos(-1.0)#define pii pair<int,int>#define Lson L, mid, rt<<1#define Rson mid+1, R, rt<<1|1const int maxn=5e2+10;using namespace std;typedef  long long ll;typedef  unsigned long long  ull; inline int read(){int ra,fh;char rx;rx=getchar(),ra=0,fh=1;while((rx<'0'||rx>'9')&&rx!='-')rx=getchar();if(rx=='-')fh=-1,rx=getchar();while(rx>='0'&&rx<='9')ra*=10,ra+=rx-48,rx=getchar();return ra*fh;}//#pragma comment(linker, "/STACK:102400000,102400000")ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);}ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;}typedef  vector<int> vi;int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}};const int N = 1e7+5;void print(int x);vi a;int n,k,m;int main(){int curx,cury; while(cin >> n>>k>>m){if(n==0&&k==0&&m==0)break; a.clear();for(int i=1;i<=n;i++)a.push_back(i);curx = 0;cury = n-1;int cc = n;while(cc){int ct1=k,ct2=m;if(a[curx]!=-1)ct1--;while(ct1){//cout <<"@@"<<curx<<endl;curx++;curx%=n;if(a[curx]!=-1){ct1--;}}if(a[cury]!=-1)ct2--;while(ct2){//cout <<"&&"<<cury<<endl;cury--;cury=(cury+n)%n;if(a[cury]!=-1){ct2--;}}if(curx==cury){cc--;print(a[curx]);a[curx] = -1;}else{cc-=2;print(a[curx]);print(a[cury]);a[curx] = -1;a[cury] = -1;}if(cc!=0)cout << ",";else{cout << endl;}}}return 0;} void print(int x){if(x>9){cout << " "<<x/10<<x%10;}else{cout <<"  "<<x;}}


0 0
原创粉丝点击