版本2和8间的区别 (跳过第6版)
于2006-03-11 16:06:07修订的的版本2
大小: 1306
编辑: czk
备注:
于2008-02-23 15:35:52修订的的版本8
大小: 2411
编辑: localhost
备注: converted to 1.6 markup
删除的内容标记成这样。 加入的内容标记成这样。
行号 1: 行号 1:
Bee Maja ## page was renamed from 程序设计练习11——zju1954——Bee Maja
= Bee Maja =

http://acm.zju.edu.cn/show_problem.php?pid=1954
行号 12: 行号 15:
 
{{attachment:1954-1.gif}}
行号 16: 行号 20:
Willi's Coordinate System
行号 17: 行号 22:
Willi's Coordinate System
 
{{attachment:1954-2.gif}}
行号 46: 行号 51:
行号 47: 行号 53:
{{{#!cplusplus
/*Written by czk*/
#include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
using namespace std;

int main() {
 int n;
 while(cin >> n ) {
  if(n==1) { cout << "0 0" << endl; continue; }
  double r = sqrt((double)(4*n-5)/3);
  int i = floor(r);
  if(i%2==0) i--;
  int level = (i-1)/2+1;
  int offset = n - 3*(level-1)*level-2;
  switch(offset / level) {
   case 0: cout << level-1 - offset % level<< ' ' << 1 + offset % level << endl; break;
   case 1: cout << -1 - offset % level <<' ' << level << endl; break;
   case 2: cout << - level << ' ' << level - 1 - offset % level << endl; break;
   case 3: cout << 1 - level + offset % level << ' ' << -1 - offset % level << endl; break;
   case 4: cout << 1 + offset % level << ' ' << - level << endl; break;
   case 5: cout << level << ' ' << 1 - level + offset % level << endl; break;
  }
 }
 return 0;
}
}}}

Bee Maja

http://acm.zju.edu.cn/show_problem.php?pid=1954

Time limit: 1 Seconds

Memory limit: 32768K

Maja is a bee. She lives in a bee hive with thousands of other bees. This bee hive consists of many hexagonal honey combs where the honey is stored in.

But bee Maja has a problem. Willi told her where she can meet him, but because Willi is a male drone and Maja is a female worker they have different coordinate systems.

Maja's Coordinate System

[附件]

Maja who often flies directly to a special honey comb has laid an advanced two dimensional grid over the whole hive.

Willi's Coordinate System

[附件]

Willi who is more lazy and often walks around just numbered the cells clockwise starting from 1 in the middle of the hive.

Help Maja to convert Willi's system to hers. Write a program which for a given honey comb number gives the coordinates in Maja's system.

1. Input

The input contains one or more integers which represent Willi's numbers. Each number stands on its own in a separate line, directly followed by a newline. The honey comb numbers are all less than 100 000.

2. Output

You should output the corresponding Maja coordinates to Willi's numbers, each coordinate pair on a separate line.

3. Sample Input

1
2
3
4
5

4. Sample Output

0 0
0 1
-1 1
-1 0
0 -1


   1 /*Written by czk*/
   2 #include <iostream>
   3 #include <algorithm>
   4 #include <string>
   5 #include <cmath>
   6 using namespace std;
   7 
   8 int main() {
   9         int n;
  10         while(cin >> n ) {
  11                 if(n==1) { cout << "0 0" << endl; continue; }
  12                 double r = sqrt((double)(4*n-5)/3);
  13                 int i = floor(r);
  14                 if(i%2==0) i--;
  15                 int level = (i-1)/2+1;
  16                 int offset = n - 3*(level-1)*level-2;
  17                 switch(offset / level) {
  18                         case 0: cout << level-1 - offset % level<< ' ' << 1 + offset % level << endl; break;
  19                         case 1: cout << -1 - offset % level <<' ' << level << endl; break;
  20                         case 2: cout << - level << ' ' << level - 1 - offset % level << endl; break;
  21                         case 3: cout << 1 - level + offset % level << ' ' << -1 - offset % level << endl; break;
  22                         case 4: cout << 1 + offset % level << ' ' << - level << endl; break;
  23                         case 5: cout << level << ' ' << 1 - level + offset % level << endl; break;
  24                 }
  25         }
  26         return 0;
  27 }

zju1954 (2008-06-01 13:25:35由czk编辑)

ch3n2k.com | Copyright (c) 2004-2020 czk.