spj

sdfzoj/problem/758 千帆渡

lemon_spj
https://www.cnblogs.com/arcturus/p/9501345.html

#include <bits/stdc++.h>
using namespace std;
const int N = 5005;
int k[N], a[N], b[N];
int main(int argc, char *argv[]) {
    FILE *fin = fopen(argv[1], "r");
    FILE *fout = fopen(argv[2], "r");
    FILE *ans = fopen(argv[3], "r");
    FILE *score = fopen(argv[5], "w");
    FILE *msg = fopen(argv[6], "w");
    int your, std, i, x, y, n, m;
    fscanf(fout, "%d", &your);
    for (i = 1; i <= your; ++i) fscanf(fout, "%d", &k[i]);
    for (i = 2; i <= your; ++i)
        if (k[i - 1] > k[i]) {
            fprintf(score, "0\n");
            fprintf(msg, "Sequence is not increasing.\n");
            return 0;
        }
    fscanf(ans, "%d", &std);
    if (your != std) {
        fprintf(score, "0\n");
        fprintf(msg, "WA on the first line and skipped.\n");
        return 0;
    }
    fscanf(fin, "%d", &n);
    for (i = 1; i <= n; ++i) fscanf(fin, "%d", &a[i]);
    fscanf(fin, "%d", &m);
    for (i = 1; i <= m; ++i) fscanf(fin, "%d", &b[i]);
    for (i = x = y = 1; i <= your && x <= n && y <= m; ++i) {
        while (x <= n && a[x] != k[i]) ++x;
        while (y <= m && b[y] != k[i]) ++y; 
    }
    if (i == your + 1 && x <= n && y <= m) {
        fprintf(score, "%s\n", argv[4]);
        fprintf(msg, "A feasible solution!\n");
        return 0;
    } else {
        fprintf(score, "0\n");
        fprintf(msg, "WA on the second line.\n");
        return 0;
    }
}

luogu_spj
https://www.luogu.com.cn/blog/luogu/special-judge

#include <bits/stdc++.h>
#include "testlib.h"
using namespace std;
const int N = 5005;
int k[N], a[N], b[N];
int main(int argc, char *argv[]) {
	registerTestlibCmd(argc, argv);
	int your, std, i, x, y, n, m;
	your = ouf.readInt();
	for (i = 1; i <= your; ++i) k[i] = ouf.readInt();
	for (i = 2; i <= your; ++i)
		if (k[i - 1] > k[i]) {
			quitf(_wa, "Sequence is not increasing.\n");
			return 0;
		}
	std = ans.readInt();
	if (your != std) {
		quitf(_wa, "WA on the first line and skipped.\n");
		return 0;
	}
	n = inf.readInt();
	for (i = 1; i <= n; ++i) a[i] = inf.readInt();
	m = inf.readInt();
	for (i = 1; i <= m; ++i) b[i] = inf.readInt();
	for (i = x = y = 1; i <= your && x <= n && y <= m; ++i) {
		while (x <= n && a[x] != k[i]) ++x;
		while (y <= m && b[y] != k[i]) ++y; 
	}
	if (i == your + 1 && x <= n && y <= m) {
		quitf(_ok, "A feasible solution!\n");
	} else {
		quitf(_wa, "WA on the second line.\n");
	}
	return 0;
}

最后将名字改为spj_cpp.cpp放到数据包里,压缩

上一篇:【JS 逆向百例】DOM事件断点调试,某商盟登录逆向


下一篇:第四篇:华为防火墙USG5500-企业双ISP出口