自编写简易OJ 【用于日常ACM训练,数据测试】(待完善)

今天下午算是被一题的数据恶心到了。。测试了一下午 WA了一下午,至今不知道是什么样例错了。。

题目数据还没发出来,先写好代码准备迎接他!(*`・з・)ムッ (▼皿▼#)

另外庆祝CSDN发博客终于取消掉文章分类这个框了
在这里插入图片描述
(每次填那个框框都可尴尬了)


使用方法:

如下图,在前后附加代码
在这里插入图片描述

效果:

查看当前目录下的judge.result文件
在这里插入图片描述
在这里插入图片描述

代码实现:

头文件:在这里插入图片描述
static storage:
在这里插入图片描述
方法实现:在这里插入图片描述

/*
 * Copyright (c) 2019 Ng Kimbing, HNU, All rights reserved. May not be used, modified, or copied without permission.
 * @Author: Ng Kimbing, HNU.
 * @LastModified:2019-08-12 T 12:09:46.922 +08:00
 */

//
// Created by Hasee on 8/19/2019.
//
//#ifdef BINGOJ_TEST

#ifndef SOLUTION_BING_OJ
#define SOLUTION_BING_OJ

#include <utility>

#include <time.h>
#include <cstdio>
#include <iostream>
#include <fstream>
#include <string>

namespace BingOJ {
    string myFileName; /* NOLINT */
    string stdFileName;/* NOLINT */
    long startTime, endTime;
    long time;

    void set_properties(string in, string stdAnswer, long timeLimit) {
        myFileName = std::move(in);
        stdFileName = std::move(stdAnswer);
        startTime = clock();
        time = timeLimit + 100;
    }

    bool special_judge() {
        //TODO: Finish spj
        return false;
    }

    bool normal_judge() {
        fflush(stdout);
        std::cout << flush;
        freopen("judge.result", "w", stdout);
        endTime = clock();
        int line = 1;
        ifstream myAns(myFileName);
        ifstream stdAns(stdFileName);

        string my, standardString;
        while (myAns >> my && stdAns >> standardString) {
            if (my != standardString) {
                std::cout << "Wrong answer at line: " + to_string(line) << endl;
                string foo;
                std::cout << foo.append("Your answer: ").append(my).append("    Expected: ").append(standardString)
                          << endl;
                exit(-1);
            }
            ++line;
        }
        double duration = 1000.0 * (endTime - startTime) / CLOCKS_PER_SEC;
        if (time > duration)
            std::cout << "You've got an AC! CONGRATS    Time: " + to_string(duration) + "ms" << endl;
        else
            std::cout << "All answers are correct, but you've gog a TLE\nYour time: " +
                         to_string(duration) + "ms  Time Limit: " + to_string(time - 100) + "ms" << endl;
        return true;
    }
};
#endif

//#endif
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值