游戏《工程师死绝的世界》题目翻译及题解合集
游戏地址:拠点 | エンジニアが死滅シタ世界 〜アンドロイドとふたりぼっちで生きろ〜(需要 …
May all the beauty be blessed.
Translation by KSkun
原题:問題「機械の総合病院」 | エンジニアが死滅シタ世界 〜アンドロイドとふたりぼっちで生きろ〜
你在分析PAIZA医院的系统。
为了避免被非法入侵,医院系统的用户密码应该达到一定的强度。
PAIZA医院的系统要求用户密码满足以下的强度要求:
密码中,不区分英文字符的大小写。
如果密码满足以上强度要求,输出Valid
,否则输出Invalid
。
例如,样例1中的密码7Caaad9
满足条件1和2,但是不满足条件3,因为aaa
这里连续出现了3个a
字符。
t
如果密码满足以上强度要求,输出Valid
,否则输出Invalid
。
输入:
7Caaad9
输出:
Invalid
输入:
DjZGrduN8Mj4
输出:
Valid
// Code by KSkun, 2019/1
#include <cstdio>
#include <cctype>
#include <cstring>
#include <algorithm>
typedef long long LL;
inline char fgc() {
static char buf[100000], *p1 = buf, *p2 = buf;
return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2)
? EOF : *p1++;
}
inline LL readint() {
LL res = 0, neg = 1; char c = fgc();
for(; !isdigit(c); c = fgc()) if(c == '-') neg = -1;
for(; isdigit(c); c = fgc()) res = res * 10 + c - '0';
return res * neg;
}
inline char readsingle() {
char c;
while(!isgraph(c = fgc())) {}
return c;
}
char t[35];
bool hasalpha = false, hasdigit = false;
int main() {
scanf("%s", t + 1);
int n = strlen(t + 1);
if(n < 6) {
puts("Invalid"); return 0;
}
int cnt = 0;
for(int i = 1; i <= n; i++) {
if(isupper(t[i])) t[i] = tolower(t[i]);
if(isalpha(t[i])) hasalpha = true;
if(isdigit(t[i])) hasdigit = true;
if(t[i] != t[i - 1]) cnt = 1;
else cnt++;
if(cnt >= 3) {
puts("Invalid"); return 0;
}
}
if(!hasalpha || !hasdigit) {
puts("Invalid"); return 0;
}
puts("Valid");
return 0;
}
Translation by KSkun
原题:問題「砂漠の公園」 | エンジニアが死滅シタ世界 〜アンドロイドとふたりぼっちで生きろ〜
以前公园经常举行某种比赛的大会。每次比赛的结果记录都能找到,但是哪只队伍最终获得优胜的记录却丢失了。
因此你需要写一个程序来计算最终是哪只队伍获得了优胜。
大会进行循环比赛,按照以下的方式计算每只队伍的得分。一次比赛获胜得2分,平局得1分,输局得0分。
在所有比赛进行完毕后,得分最多的队伍获得优胜。
输入中包含大会的参赛人数以及比赛结果,请设计程序输出比赛的获胜者以及得分和胜利、平局、失败的场数。
样例1解释如下图所示。
N
c_{1,1}c_{1,2}...c_{1,N}
c_{2,1}c_{2,2}...c_{2,N}
...
c_{N,1}c_{N,2}...c_{N,N}
W
D
L
-
你需要输出优胜队伍的编号s、得分t、获胜场数W、平局场数D、失败场数L。
s t W D L
W
、D
、L
或-
四种W
时,c_{j, i}为L
D
时,c_{j, i}为D
-
输入:
3
-DW
D-D
LD-
输出:
1 3 1 1 0
输入:
10
-WLDWWDWWW
L-WDWWWLWW
WL-LWWLWWD
DDW-WWDWWW
LLLL-LLLWW
LLLLW-WLLL
DLWDWL-WLW
LWLLWWL-WW
LLLLLWWL-W
LLDLLWLLL-
输出:
4 15 6 3 0
// Code by KSkun, 2019/5
#include <cstdio>
#include <cctype>
#include <cstring>
#include <algorithm>
typedef long long LL;
inline char fgc() {
static char buf[100000], *p1 = buf, *p2 = buf;
return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2)
? EOF : *p1++;
}
inline LL readint() {
LL res = 0, neg = 1; char c = fgc();
for(; !isdigit(c); c = fgc()) if(c == '-') neg = -1;
for(; isdigit(c); c = fgc()) res = res * 10 + c - '0';
return res * neg;
}
inline char readsingle() {
char c;
while(!isgraph(c = fgc())) {}
return c;
}
inline bool isop(char c) {
return c == '-' || c == 'D' || c == 'W' || c == 'L';
}
inline char readop() {
char c;
while(!isop(c = fgc())) {}
return c;
}
const int MAXN = 105;
int n, t[MAXN], w[MAXN], d[MAXN], l[MAXN];
int main() {
n = readint();
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
char op = readop();
if(i == j) continue;
if(op == 'W') {
w[i]++; t[i] += 2;
} else if(op == 'D') {
d[i]++; t[i] += 1;
} else if(op == 'L') {
l[i]++;
}
}
}
int win = 0;
for(int i = 1; i <= n; i++) {
if(t[i] > t[win]) win = i;
}
printf("%d %d %d %d %d", win, t[win], w[win], d[win], l[win]);
return 0;
}
Translation by KSkun
原题:問題「お金が引き出せない銀行」 | エンジニアが死滅シタ世界 〜アンドロイドとふたりぼっちで生きろ〜
你正在编写一个用于从银行存款中取钱的程序。
你知道你的存款n以及要取的钱数w。
取钱时,如果取钱后的余额为负值,则输出error
,否则输出余额。
n
w
如果取钱后的余额为负值,则输出error
,否则输出余额。
输入:
10000
1020
输出:
8980
输入:
1000
5000
输出:
error
// Code by KSkun, 2019/1
#include <cstdio>
#include <cctype>
#include <cstring>
#include <algorithm>
typedef long long LL;
inline char fgc() {
static char buf[100000], *p1 = buf, *p2 = buf;
return p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 100000, stdin), p1 == p2)
? EOF : *p1++;
}
inline LL readint() {
LL res = 0, neg = 1; char c = fgc();
for(; !isdigit(c); c = fgc()) if(c == '-') neg = -1;
for(; isdigit(c); c = fgc()) res = res * 10 + c - '0';
return res * neg;
}
inline char readsingle() {
char c;
while(!isgraph(c = fgc())) {}
return c;
}
int n, w;
int main() {
scanf("%d%d", &n, &w);
if(w > n) puts("error");
else printf("%d\n", n - w);
return 0;
}