您的位置:首页 > 其它

poj 2265 Bee Maja 模拟计数

2015-11-06 13:12 162 查看
//poj 2265
//sep9
#include <iostream>
using namespace std;
const int maxN=100000;
int f[maxN+10];

int main()
{
int n;
f[0]=1;
for(int i=1;i<maxN;++i)
f[i]=6*i+f[i-1];
while(scanf("%d",&n)==1){
int i;
if(n==1){
printf("0 0\n");
continue;
}
for(i=0;;++i)
if(f[i]>=n)
break;
int k=n-f[i-1]-1;
int a=k/i,b=k%i;
int ans1,ans2;
if(a==0){
int p=i-1,q=1;
ans1=p-b;
ans2=q+b;
}else if(a==1){
int p=-1,q=i;
ans1=p-b;
ans2=q;
}else if(a==2){
int p=-i,q=i-1;
ans1=p;
ans2=q-b;
}else if(a==3){
int p=-i+1,q=-1;
ans1=p+b;
ans2=q-b;
}else if(a==4){
int p=1,q=-i;
ans1=p+b;
ans2=q;
}else{
int p=i,q=-i+1;
ans1=p;
ans2=q+b;
}
printf("%d %d\n",ans1,ans2);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  poj 算法