原「史上最牛逼 SPJ」:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;char str[10000005],str1[10000005];
int main() {int x,y;
FILE *fco=fopen("code","r"),*frep=stderr;
FILE *fop=fopen("user_out","r"),*fsco=stdout;
FILE *fans=fopen("answer","r");
while(~fscanf(fop,"%d",&x))
{
fscanf(fans,"%d",&y);
if(x^y)
{
fprintf(frep,"Wrong Answer! Expected %lld but read %lld",y,x);
fprintf(fsco,"0");return 0;
}
}
while (~fscanf(fco,"%s",str)) {int sz=strlen(str);
for (register int i=0;i<sz;++i){if ((str[i]=='s'&&str[i+1]=='o')) {
fprintf(frep,"Character 'r' is found in your code!");
fprintf(fsco,"0");return 0;
}
if ((str[i]=='q')) {
fprintf(frep,"Character 'q' is found in your code!");
fprintf(fsco,"0");return 0;
}
}
}fprintf(frep,"Accepted!");fprintf(fsco,"100");return 0;
}
神奇 SPJ,什么都不输出就可以拿满分,导致 1B 过 T1。
(差点 0B,要交上去的时候 SPJ 被修好了
代码中不允许出现连续的 's' 和 'o',不允许出现 'q'
看来去重没办法了,但 sort 还是可以用的。
s\
ort(a, a+n);
后来被改了,「\」前不允许出现 "sort" 中任意字符。
python? python!
众所周知 python 中 exec()
函数可以执行指定语句,所以 exec("a.s"+"ort()")
就可以避开检测。
后题目改成了 20m, 100ms,python空间大,过不去。
尝试改成以下,但发现读入就爆空间了。。。。。
(改之前是不是 C++ 冒泡也能过啊?
n = int(input())
a = input().split()
i = 0
while i < n:
a[i] = int(a[i])
i = i + 1
exec("a.s"+"ort()")
i = 0
while i < n:
print(a[i], end=' ')
i = i + 1
print()
exec("a = list(s"+"et(a))")
exec("a.s"+"ort()")
print(len(a))
i = 0
while i < n:
print(a[i], end=' ')
i = i + 1
写完作业,想起来 define
……
所以
#define S s##ort
就可以使用 sort 了!
最终 AC 代码如下:
#include<iostream>
#include<cstdio>
#include<vector>
#include<algorithm>
#define S s##ort
using namespace std;
const int N = 1e5 + 10;
int n, a[N];
vector <int> b;
int main(){
scanf("%d", &n);
for(int i = 0; i < n; i++){
scanf("%d", &a[i]);
}
S(a, a+n);
for(int i = 0; i < n; i++){
printf("%d ", a[i]);
}
puts("");
b.push_back(a[0]);
for(int i = 1; i < n; i++){
if(a[i] != a[i-1]){
b.push_back(a[i]);
}
}
printf("%d\n", b.size());
for(int i = 0; i < b.size(); i++){
printf("%d ", b[i]);
}
puts("");
return 0;
}
截止发博文时 SPJ 并未被修。