版本1和9间的区别 (跳过第8版)
于2006-03-11 16:04:22修订的的版本1
大小: 1255
编辑: czk
备注:
于2008-06-01 11:46:45修订的的版本9
大小: 1274
编辑: czk
备注:
删除的内容标记成这样。 加入的内容标记成这样。
行号 1: 行号 1:
Bee Maja
 Time limit: 1 Seconds Memory limit: 32768K
= Bee Maja =
行号 4: 行号 3:
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.
http://acm.zju.edu.cn/show_problem.php?pid=1954
行号 10: 行号 5:
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.
 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.
{{{#!cplusplus
/*Written by czk*/
#include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
using namespace std;
行号 17: 行号 13:
Output
 You should output the corresponding Maja coordinates to Willi's numbers, each coordinate pair on a separate line.

Sample Input
 1
 2
 3
 4
 5

Sample Output
 0 0
 0 1
 -1 1
 -1 0
 0 -1
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

   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) {
  12             cout << "0 0" << endl;
  13             continue;
  14         }
  15         double r = sqrt((double)(4*n-5)/3);
  16         int i = floor(r);
  17         if (i%2==0) i--;
  18         int level = (i-1)/2+1;
  19         int offset = n - 3*(level-1)*level-2;
  20         switch (offset / level) {
  21         case 0:
  22             cout << level-1 - offset % level<< ' ' << 1 + offset % level << endl;
  23             break;
  24         case 1:
  25             cout << -1 - offset % level <<' ' << level << endl;
  26             break;
  27         case 2:
  28             cout << - level << ' ' << level - 1 - offset % level << endl;
  29             break;
  30         case 3:
  31             cout << 1 - level + offset % level << ' ' << -1 - offset % level << endl;
  32             break;
  33         case 4:
  34             cout << 1 + offset % level << ' ' << - level << endl;
  35             break;
  36         case 5:
  37             cout << level << ' ' << 1 - level + offset % level << endl;
  38             break;
  39         }
  40     }
  41     return 0;
  42 }

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

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