QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#306699 | #7979. 棋盘 | hos_lyric | 0 | 453ms | 11836kb | D | 2.6kb | 2024-01-17 02:10:55 | 2024-01-17 02:10:55 |
Judging History
answer
import std.conv, std.functional, std.range, std.stdio, std.string;
import std.algorithm, std.array, std.bigint, std.bitmanip, std.complex, std.container, std.math, std.mathspecial, std.numeric, std.regex, std.typecons;
import core.bitop;
class EOFException : Throwable { this() { super("EOF"); } }
string[] tokens;
string readToken() { for (; tokens.empty; ) { if (stdin.eof) { throw new EOFException; } tokens = readln.split; } auto token = tokens.front; tokens.popFront; return token; }
int readInt() { return readToken.to!int; }
long readLong() { return readToken.to!long; }
string COLOR(string s = "") { return "\x1b[" ~ s ~ "m"; }
bool chmin(T)(ref T t, in T f) { if (t > f) { t = f; return true; } else { return false; } }
bool chmax(T)(ref T t, in T f) { if (t < f) { t = f; return true; } else { return false; } }
int binarySearch(alias pred, T)(in T[] as) { int lo = -1, hi = cast(int)(as.length); for (; lo + 1 < hi; ) { const mid = (lo + hi) >> 1; (unaryFun!pred(as[mid]) ? hi : lo) = mid; } return hi; }
int lowerBound(T)(in T[] as, T val) { return as.binarySearch!(a => (a >= val)); }
int upperBound(T)(in T[] as, T val) { return as.binarySearch!(a => (a > val)); }
void main() {
try {
for (; ; ) {
const L = readInt;
const Q = readInt;
const X = readInt;
const Y = readInt;
auto K = new BigInt[Q];
foreach (q; 0 .. Q) {
K[q] = BigInt(readToken);
}
const maxK = K.maxElement;
/*
0 1 2
+---
3|0 1 2
3
*/
alias Pt = Tuple!(int, "x", int, "y");
const len = (Y + 4 - 1) / 4 * 4;
auto ps = new Pt[len * 4];
auto fs = new BigInt[len * 4];
foreach (i; 0 .. len) {
ps[i * 4 + 0] = Pt(i + 0, i + 0);
ps[i * 4 + 1] = Pt(i + 0, i + 1);
ps[i * 4 + 2] = Pt(i + 0, i + 2);
ps[i * 4 + 3] = Pt(i + 1, i + 0);
if (i == 0) {
fs[0 .. 4] = BigInt(1);
} else {
fs[i * 4 + 0] = fs[(i-1) * 4 + 1] + fs[(i-1) * 4 + 3];
fs[i * 4 + 1] = fs[(i-1) * 4 + 2] + fs[i * 4 + 0];
fs[i * 4 + 2] = fs[i * 4 + 1];
fs[i * 4 + 3] = fs[i * 4 + 0];
}
}
writeln(ps.length);
foreach (p; ps) {
writeln(p.x + 1, " ", p.y + 1);
}
foreach (q; 0 .. Q) {
auto ans = new char[ps.length];
ans[] = '0';
BigInt k = K[q];
foreach_reverse (y; 0 .. Y) {
if (k >= fs[y]) {
k -= fs[y];
ans[y] = '1';
}
}
writeln(ans);
}
}
} catch (EOFException e) {
}
}
Details
Tip: Click on the bar to expand more detailed information
Subtask #1:
score: 0
Wrong Answer
Test #1:
score: 0
Wrong Answer
time: 7ms
memory: 4160kb
input:
3 999 1000 340 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 ...
output:
1360 1 1 1 2 1 3 2 1 2 2 2 3 2 4 3 2 3 3 3 4 3 5 4 3 4 4 4 5 4 6 5 4 5 5 5 6 5 7 6 5 6 6 6 7 6 8 7 6 7 7 7 8 7 9 8 7 8 8 8 9 8 10 9 8 9 9 9 10 9 11 10 9 10 10 10 11 10 12 11 10 11 11 11 12 11 13 12 11 12 12 12 13 12 14 13 12 13 13 13 14 13 15 14 13 14 14 14 15 14 16 15 14 15 15 15 16 15 17 16 15 16 ...
result:
wrong answer Integer 1360 violates the range [1, 1000]
Subtask #2:
score: 0
Wrong Answer
Test #2:
score: 0
Wrong Answer
time: 51ms
memory: 4160kb
input:
12 10000 1000 340 358908473750 36343501002 904324605639 453955046266 725478753662 218319365131 882878650993 648345848966 474401697383 722377018680 718743783955 748051292505 167886140898 411111004914 327825244967 990026144963 623309580364 970889332700 319445927842 527624602835 453135227321 1153226125...
output:
1360 1 1 1 2 1 3 2 1 2 2 2 3 2 4 3 2 3 3 3 4 3 5 4 3 4 4 4 5 4 6 5 4 5 5 5 6 5 7 6 5 6 6 6 7 6 8 7 6 7 7 7 8 7 9 8 7 8 8 8 9 8 10 9 8 9 9 9 10 9 11 10 9 10 10 10 11 10 12 11 10 11 11 11 12 11 13 12 11 12 12 12 13 12 14 13 12 13 13 13 14 13 15 14 13 14 14 14 15 14 16 15 14 15 15 15 16 15 17 16 15 16 ...
result:
wrong answer Integer 1360 violates the range [1, 1000]
Subtask #3:
score: 0
Wrong Answer
Test #5:
score: 0
Wrong Answer
time: 453ms
memory: 11784kb
input:
100 10000 1000 340 87490023455826213450979333037504606824522062808297739018786336978222089712660133428564103979384831 874900289913204769749000879539227331559680630241808944569515663934025397982898503777823815274323967 8749002899116133353924895735921513229471979456689635148877567298640178774668643967...
output:
1360 1 1 1 2 1 3 2 1 2 2 2 3 2 4 3 2 3 3 3 4 3 5 4 3 4 4 4 5 4 6 5 4 5 5 5 6 5 7 6 5 6 6 6 7 6 8 7 6 7 7 7 8 7 9 8 7 8 8 8 9 8 10 9 8 9 9 9 10 9 11 10 9 10 10 10 11 10 12 11 10 11 11 11 12 11 13 12 11 12 12 12 13 12 14 13 12 13 13 13 14 13 15 14 13 14 14 14 15 14 16 15 14 15 15 15 16 15 17 16 15 16 ...
result:
wrong answer Integer 1360 violates the range [1, 1000]
Subtask #4:
score: 0
Wrong Answer
Test #7:
score: 0
Wrong Answer
time: 399ms
memory: 11500kb
input:
100 10000 990 310 4083451712318559926139496762164571032902328806667934236880329773320213539959944736095945843081512968 7811890641057562314768022152641517082686481268288006737090208624016586608183953908313798353213188661 97358161226180890688421784730819518002666166790210320310558753031161862165361257...
output:
1248 1 1 1 2 1 3 2 1 2 2 2 3 2 4 3 2 3 3 3 4 3 5 4 3 4 4 4 5 4 6 5 4 5 5 5 6 5 7 6 5 6 6 6 7 6 8 7 6 7 7 7 8 7 9 8 7 8 8 8 9 8 10 9 8 9 9 9 10 9 11 10 9 10 10 10 11 10 12 11 10 11 11 11 12 11 13 12 11 12 12 12 13 12 14 13 12 13 13 13 14 13 15 14 13 14 14 14 15 14 16 15 14 15 15 15 16 15 17 16 15 16 ...
result:
wrong answer Integer 1248 violates the range [1, 990]
Subtask #5:
score: 0
Wrong Answer
Test #9:
score: 0
Wrong Answer
time: 334ms
memory: 11836kb
input:
100 10000 1050 260 8749002899132047697490008908470485461412677723566863434996575047286849703722697797645542008396185599 8749002899132047697490008908470485461412677699052921091826559946707718798046219210886366418022957055 7655377536740541735303757766642121742076255665128332760334129720709510994307378...
output:
1040 1 1 1 2 1 3 2 1 2 2 2 3 2 4 3 2 3 3 3 4 3 5 4 3 4 4 4 5 4 6 5 4 5 5 5 6 5 7 6 5 6 6 6 7 6 8 7 6 7 7 7 8 7 9 8 7 8 8 8 9 8 10 9 8 9 9 9 10 9 11 10 9 10 10 10 11 10 12 11 10 11 11 11 12 11 13 12 11 12 12 12 13 12 14 13 12 13 13 13 14 13 15 14 13 14 14 14 15 14 16 15 14 15 15 15 16 15 17 16 15 16 ...
result:
wrong answer Wrong[2]
Subtask #6:
score: 0
Wrong Answer
Test #11:
score: 0
Wrong Answer
time: 300ms
memory: 11524kb
input:
100 10000 1050 240 8749002899132047697490008908470485461412677723572849734285100881333676956761384191490477496469520383 874886939179415873527191365288672777702448917037688119492655525651250910013304087281579324577152991 87490028991320476974900089084704854614126777235728490149522637601883528949454159...
output:
960 1 1 1 2 1 3 2 1 2 2 2 3 2 4 3 2 3 3 3 4 3 5 4 3 4 4 4 5 4 6 5 4 5 5 5 6 5 7 6 5 6 6 6 7 6 8 7 6 7 7 7 8 7 9 8 7 8 8 8 9 8 10 9 8 9 9 9 10 9 11 10 9 10 10 10 11 10 12 11 10 11 11 11 12 11 13 12 11 12 12 12 13 12 14 13 12 13 13 13 14 13 15 14 13 14 14 14 15 14 16 15 14 15 15 15 16 15 17 16 15 16 1...
result:
wrong answer Wrong[2]
Subtask #7:
score: 0
Wrong Answer
Test #13:
score: 0
Wrong Answer
time: 1ms
memory: 2984kb
input:
100 1 980 260 8749002899132047697490008908470485461309833682610292204604841418296589481615503153703163411103219711
output:
1040 1 1 1 2 1 3 2 1 2 2 2 3 2 4 3 2 3 3 3 4 3 5 4 3 4 4 4 5 4 6 5 4 5 5 5 6 5 7 6 5 6 6 6 7 6 8 7 6 7 7 7 8 7 9 8 7 8 8 8 9 8 10 9 8 9 9 9 10 9 11 10 9 10 10 10 11 10 12 11 10 11 11 11 12 11 13 12 11 12 12 12 13 12 14 13 12 13 13 13 14 13 15 14 13 14 14 14 15 14 16 15 14 15 15 15 16 15 17 16 15 16 ...
result:
wrong answer Integer 1040 violates the range [1, 980]
Subtask #8:
score: 0
Wrong Answer
Test #19:
score: 0
Wrong Answer
time: 307ms
memory: 11576kb
input:
100 10000 960 240 8749002899132047697015724510954438324957730968977252383122989921226002617013223698533483281626692607 8749002899132047697490008908470485461412677720507858663971304708923117942496885325656574463725010943 87148271065573131361716885470369961093519598137825155235803895087505468828694702...
output:
960 1 1 1 2 1 3 2 1 2 2 2 3 2 4 3 2 3 3 3 4 3 5 4 3 4 4 4 5 4 6 5 4 5 5 5 6 5 7 6 5 6 6 6 7 6 8 7 6 7 7 7 8 7 9 8 7 8 8 8 9 8 10 9 8 9 9 9 10 9 11 10 9 10 10 10 11 10 12 11 10 11 11 11 12 11 13 12 11 12 12 12 13 12 14 13 12 13 13 13 14 13 15 14 13 14 14 14 15 14 16 15 14 15 15 15 16 15 17 16 15 16 1...
result:
wrong answer Wrong[2]