傅某人__ 2017-04-28 06:35 采纳率: 50%
浏览 1263

新手求问,,,,,为什么oj一直过不去

新手,,,,为什么oj总是一直不过,,,
和网上正确代码对比了一样的输入对应输出一模一样。。可为什么oj不过呢
http://cxsjsx.openjudge.cn/2015warpractice/A/

 #include <iostream>
using namespace std;
#include <math.h>
#include <string>
#include <assert.h>
#include <limits.h>

#define N 1000

char _time[5];

enum Warrior {
    dragon, ninja, iceman
    , lion, wolf
};

const string name_table[5] = { "dragon", "ninja", "iceman", "lion", "wolf" };
const int next_warrior_table_1[5] = { 2,0,3,4,1 };
const int next_warrior_table_2[5] = { 1,2,4,0,3 };

void print_time(int time) {
    if (time <= 9) {
        _time[0] = time + '0';
        _time[1] = '0';
        _time[2] = '0';
        for (int i = 2; i >= 0; i--)
            printf("%c", _time[i]);
    }
    else if (time <= 99) {
        _time[0] = time % 10 + '0';
        _time[1] = (time / 10) + '0';
        _time[2] = '0';
        for (int i = 2; i >= 0; i--)
            printf("%c", _time[i]);
    }
    else if (time <= 999){
        _time[0] = time % 10 + '0';
        _time[1] = (time / 10) % 10 + '0';
        _time[2] = (time / 100) + '0';
        for (int i = 2; i >= 0; i--)
            printf("%c", _time[i]);
    }
    else if (time <= 9999) {
        _time[0] = time % 10 + '0';
        _time[1] = (time / 10) % 10 + '0';
        _time[2] = (time / 100) % 10 + '0';
        _time[3] = (time / 1000) + '0';
        for (int i = 3; i >= 0; i--)
            printf("%c", _time[i]);
    }
    else {
        _time[0] = time % 10 + '0';
        _time[1] = (time / 10) % 10 + '0';
        _time[2] = (time / 100) % 10 + '0';
        _time[3] = (time / 1000) % 10 + '0';
        _time[4] = (time / 10000) + '0';
        for (int i = 4; i >= 0; i--)
            printf("%c", _time[i]);
    }

}

int main() {
    int n, M1, M2, time;
    bool run1, run2;
    int warrior_total_1, warrior_total_2;
    int warrior_num_1[5], warrior_num_2[5];
    int next_warrior_1, next_warrior_2;
    int lifepoint_table[5];

    cin >> n;
    for (int k = 1; k <= n; k++) {



        cin >> M1;
        M2 = M1;
        time = 0;
        run1 = run2 = true;
        warrior_total_1 = warrior_total_2 = 0;
        for (int i = 0; i < 5; i++)
            warrior_num_1[i] = warrior_num_2[i] = 0;
        next_warrior_1 = 2;
        next_warrior_2 = 3;
        for (int i = 0; i < 5; i++)
            cin >> lifepoint_table[i];
        printf("Case:%d\n", k);
        for (; run1 || run2; time++) {

            if (run1) {
                if (M1 - lifepoint_table[next_warrior_1] < 0) {
                    int i = 1;
                    for (; i <= 4; i++) {
                        next_warrior_1 = next_warrior_table_1[next_warrior_1];
                        if (M1 - lifepoint_table[next_warrior_1] >= 0)
                            break;
                    }
                    if (i == 5) {
                        print_time(time);
                        printf(" red headquarter stops making warriors\n");
                        run1 = false;
                    }
                }

                if (run1) {
                    M1 -= lifepoint_table[next_warrior_1];
                    warrior_total_1++;
                    warrior_num_1[next_warrior_1]++;

                    print_time(time);
                    printf(" red %s %d born with strengh %d,%d %s in red headquarter\n",
                        name_table[next_warrior_1].c_str(), warrior_total_1, lifepoint_table[next_warrior_1],
                        warrior_num_1[next_warrior_1], name_table[next_warrior_1].c_str());

                    next_warrior_1 = next_warrior_table_1[next_warrior_1];

                    //printf("%d : %d %d %d %d %d\n", time, warrior_num_1[0], warrior_num_1[1], warrior_num_1[2]
                    //  , warrior_num_1[3], warrior_num_1[4], warrior_num_1[5]);

                }

            }

            if (run2) {
                if (M2 - lifepoint_table[next_warrior_2] < 0) {
                    int i = 0;
                    for (; i <= 4; i++) {
                        next_warrior_2 = next_warrior_table_2[next_warrior_2];
                        if (M2 - lifepoint_table[next_warrior_2] >= 0)
                            break;
                    }
                    if (i == 5) {
                        run2 = false;
                        print_time(time);
                        printf(" blue headquarter stops making warriors\n");
                    }
                }
                if (run2) {
                    M2 -= lifepoint_table[next_warrior_2];
                    warrior_total_2++;
                    warrior_num_2[next_warrior_2]++;

                    print_time(time);
                    printf(" blue %s %d born with strengh %d,%d %s in blue headquarter\n",
                        name_table[next_warrior_2].c_str(), warrior_total_2, lifepoint_table[next_warrior_2], 
                        warrior_num_2[next_warrior_2], name_table[next_warrior_2].c_str());

                    next_warrior_2 = next_warrior_table_2[next_warrior_2];

                    //printf("%d : %d %d %d %d %d\n", time, warrior_num_2[0], warrior_num_2[1], warrior_num_2[2]
                    //  , warrior_num_2[3], warrior_num_2[4], warrior_num_2[5]);

                }

            }




        }
    }
}
  • 写回答

1条回答 默认 最新

  • shen_wei 2017-04-28 08:38
    关注
    评论

报告相同问题?

悬赏问题

  • ¥50 汇编语言除法溢出问题
  • ¥65 C++实现删除N个数据列表共有的元素
  • ¥15 Visual Studio问题
  • ¥15 state显示变量是字符串形式,但是仍然红色,无法引用,并显示类型不匹配
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗