记录编号 102055 评测结果 AAAAAA
题目名称 [UVa 133] 救济金队伍 最终得分 100
用户昵称 Gravatarchs 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2014-05-16 18:55:58 内存使用 0.31 MiB
显示代码纯文本
#include<iostream> 
#include<fstream>
#include<algorithm>
using namespace std;
class relief_
{
	public:
		int llink,rlink;
		int num;
};
int i,j;
int n,k,m;
void relief(int n,int k,int m)
{
	int xk=1,xm=n;
	relief_ man[n+1];
	for(i=1;i<=n;i++){
		man[i].llink=i-1;
		man[i].rlink=i+1;
		man[i].num=i;}
	man[1].llink=n;
	man[n].rlink=1;
	for(;;){
		for(i=1;i<k;i++) xk=man[xk].rlink;
		for(i=1;i<m;i++) xm=man[xm].llink;
		if(xk!=xm){
			cout<<"  "<<man[xk].num<<"  "<<man[xm].num;
			n-=2;
			if(n>0) cout<<",";
			if(n==0) break;
			if(man[xk].rlink!=xm&&man[xk].llink!=xk){
				man[man[xk].llink].rlink=man[xk].rlink;
				man[man[xk].rlink].llink=man[xk].llink;
				man[man[xm].llink].rlink=man[xm].rlink;
				man[man[xm].rlink].llink=man[xm].llink;			
				xk=man[xk].rlink;
				xm=man[xm].llink;
			}
			else
				if(man[xk].rlink==xm){
				man[man[xk].llink].rlink=man[xm].rlink;
				man[man[xm].rlink].llink=man[xk].llink;
				xk=man[xm].rlink;
				xm=man[xk].llink;
				}
				else
					if(man[xk].llink==xm){
					cout<<endl<<xk<<" "<<xm<<endl;
					man[man[xk].rlink].llink=man[xm].llink;
					man[man[xm].llink].rlink=man[xk].rlink;
					xk=man[xk].rlink;
					xm=man[xm].llink;
				}
		}
		if(xk==xm){
			cout<<"  "<<man[xk].num;
			n--;
			if(n>0)cout<<",";
			if(n==0) break;
			man[man[xk].llink].rlink=man[xk].rlink;
			man[man[xk].rlink].llink=man[xk].llink;
			xk=man[xk].rlink;
			xm=man[xk].llink;
		}
	}
}
int main() 
{
	freopen("relief.in","r",stdin);
	freopen("relief.out","w",stdout);
	int N,K,M;
	for(;;){
		cin>>N>>K>>M;
		if(N==0&&K==0&&M==0) break;
		relief(N,K,M);
		cout<<endl;
	}
	return 0;
}