Submission #1168578
Source Code Expand
/+ dub.sdl: name "F" dependency "dcomp" version=">=0.6.0" +/ import std.stdio, std.range, std.algorithm, std.conv; // import dcomp.scanner; Scanner sc; static this() { sc = new Scanner(stdin); } bool query(int a, int b) { writefln("? %d %d", a, b); stdout.flush; string s; sc.read(s); return s == "Y"; } int main() { int a, b; sc.read(a, b); int n = a+b; if (a <= b) { writeln("Impossible"); return 0; } bool[] res = new bool[n]; foreach (i; 0..n) { res[i] = query(i, (i+1)%n); } // writeln(res); int ma = 0, tr = -1; foreach (i; 0..n) { //o, x if (res[i] || !res[(i+n-1)%n]) continue; int co = 0; int j = (i+n-1)%n; while (res[j]) { co++; j = (j+n-1)%n; } if (ma < co) { ma = co; tr = i; } } writeln("! ", iota(n).map!(x => query(tr, x) ? 1 : 0).map!(to!string).join("")); return 0; } /* IMPORT /home/yosupo/Program/dcomp/source/dcomp/scanner.d */ // module dcomp.scanner; class Scanner { import std.stdio : File; import std.conv : to; import std.range : front, popFront, array, ElementType; import std.array : split; import std.traits : isSomeChar, isStaticArray, isArray; import std.algorithm : map; File f; this(File f) { this.f = f; } string[] buf; private bool succ() { while (!buf.length) { if (f.eof) return false; buf = f.readln.split; } return true; } private bool readSingle(T)(ref T x) { if (!succ()) return false; static if (isArray!T) { alias E = ElementType!T; static if (isSomeChar!E) { //string or char[10] etc x = buf.front; buf.popFront; } else { static if (isStaticArray!T) { //static assert(buf.length == T.length); } x = buf.map!(to!E).array; buf.length = 0; } } else { x = buf.front.to!T; buf.popFront; } return true; } int read(T, Args...)(ref T x, auto ref Args args) { if (!readSingle(x)) return 0; static if (args.length == 0) { return 1; } else { return 1 + read(args); } } } unittest { import std.path : buildPath; import std.file : tempDir; import std.algorithm : equal; import std.stdio : File; string fileName = buildPath(tempDir, "kyuridenanmaida.txt"); auto fout = File(fileName, "w"); fout.writeln("1 2 3"); fout.writeln("ab cde"); fout.writeln("1.0 1.0 2.0"); fout.close; Scanner sc = new Scanner(File(fileName, "r")); int a; int[2] b; char[2] c; string d; double e; double[] f; sc.read(a, b, c, d, e, f); assert(a == 1); assert(equal(b[], [2, 3])); assert(equal(c[], "ab")); assert(equal(d, "cde")); assert(e == 1.0); assert(equal(f, [1.0, 2.0])); }
Submission Info
Submission Time | |
---|---|
Task | F - HonestOrUnkind |
User | yosupo |
Language | D (LDC 0.17.0) |
Score | 1300 |
Code Size | 3319 Byte |
Status | AC |
Exec Time | 304 ms |
Memory | 1228 KB |
Judge Result
Set Name | All | ||
---|---|---|---|
Score / Max Score | 1300 / 1300 | ||
Status |
|
Set Name | Test Cases |
---|---|
All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, 059.txt, 060.txt, 061.txt, 062.txt, 063.txt, 064.txt, 065.txt, 066.txt, 067.txt, 068.txt, 069.txt, 070.txt, 071.txt, 072.txt, 073.txt, 074.txt, 075.txt, 076.txt, 077.txt, 078.txt, 079.txt, 080.txt, 081.txt, 082.txt, 083.txt, 084.txt, 085.txt, 086.txt, 087.txt, 088.txt, 089.txt, 090.txt, 091.txt, 092.txt, 093.txt, 094.txt, 095.txt, 096.txt, 097.txt, 098.txt, 099.txt, 100.txt, 101.txt, 102.txt, 103.txt, 104.txt, 105.txt, 106.txt, 107.txt, 108.txt, 109.txt, 110.txt, 111.txt, 112.txt, 113.txt, 114.txt, 115.txt, 116.txt, 117.txt, 118.txt, 119.txt, 120.txt, 121.txt, 122.txt, 123.txt, 124.txt, 125.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
000.txt | AC | 4 ms | 724 KB |
001.txt | AC | 3 ms | 720 KB |
002.txt | AC | 3 ms | 720 KB |
003.txt | AC | 3 ms | 720 KB |
004.txt | AC | 3 ms | 724 KB |
005.txt | AC | 3 ms | 720 KB |
006.txt | AC | 3 ms | 724 KB |
007.txt | AC | 3 ms | 716 KB |
008.txt | AC | 3 ms | 716 KB |
009.txt | AC | 3 ms | 720 KB |
010.txt | AC | 15 ms | 716 KB |
011.txt | AC | 302 ms | 1228 KB |
012.txt | AC | 153 ms | 844 KB |
013.txt | AC | 3 ms | 724 KB |
014.txt | AC | 3 ms | 724 KB |
015.txt | AC | 3 ms | 724 KB |
016.txt | AC | 3 ms | 720 KB |
017.txt | AC | 3 ms | 720 KB |
018.txt | AC | 3 ms | 716 KB |
019.txt | AC | 3 ms | 720 KB |
020.txt | AC | 3 ms | 588 KB |
021.txt | AC | 3 ms | 724 KB |
022.txt | AC | 3 ms | 716 KB |
023.txt | AC | 16 ms | 716 KB |
024.txt | AC | 284 ms | 1096 KB |
025.txt | AC | 150 ms | 844 KB |
026.txt | AC | 3 ms | 724 KB |
027.txt | AC | 3 ms | 724 KB |
028.txt | AC | 3 ms | 720 KB |
029.txt | AC | 3 ms | 720 KB |
030.txt | AC | 3 ms | 720 KB |
031.txt | AC | 3 ms | 592 KB |
032.txt | AC | 3 ms | 724 KB |
033.txt | AC | 3 ms | 584 KB |
034.txt | AC | 3 ms | 720 KB |
035.txt | AC | 3 ms | 720 KB |
036.txt | AC | 15 ms | 720 KB |
037.txt | AC | 304 ms | 1100 KB |
038.txt | AC | 135 ms | 972 KB |
039.txt | AC | 3 ms | 716 KB |
040.txt | AC | 3 ms | 592 KB |
041.txt | AC | 3 ms | 720 KB |
042.txt | AC | 3 ms | 592 KB |
043.txt | AC | 3 ms | 720 KB |
044.txt | AC | 3 ms | 720 KB |
045.txt | AC | 3 ms | 716 KB |
046.txt | AC | 3 ms | 720 KB |
047.txt | AC | 3 ms | 720 KB |
048.txt | AC | 3 ms | 720 KB |
049.txt | AC | 16 ms | 588 KB |
050.txt | AC | 292 ms | 1100 KB |
051.txt | AC | 147 ms | 972 KB |
052.txt | AC | 3 ms | 720 KB |
053.txt | AC | 3 ms | 720 KB |
054.txt | AC | 3 ms | 720 KB |
055.txt | AC | 3 ms | 720 KB |
056.txt | AC | 12 ms | 592 KB |
057.txt | AC | 3 ms | 720 KB |
058.txt | AC | 3 ms | 720 KB |
059.txt | AC | 3 ms | 592 KB |
060.txt | AC | 3 ms | 720 KB |
061.txt | AC | 3 ms | 720 KB |
062.txt | AC | 17 ms | 720 KB |
063.txt | AC | 287 ms | 1100 KB |
064.txt | AC | 149 ms | 972 KB |
065.txt | AC | 3 ms | 720 KB |
066.txt | AC | 3 ms | 720 KB |
067.txt | AC | 3 ms | 720 KB |
068.txt | AC | 3 ms | 716 KB |
069.txt | AC | 3 ms | 720 KB |
070.txt | AC | 3 ms | 720 KB |
071.txt | AC | 3 ms | 720 KB |
072.txt | AC | 3 ms | 720 KB |
073.txt | AC | 3 ms | 720 KB |
074.txt | AC | 3 ms | 724 KB |
075.txt | AC | 16 ms | 724 KB |
076.txt | AC | 301 ms | 1228 KB |
077.txt | AC | 152 ms | 844 KB |
078.txt | AC | 3 ms | 720 KB |
079.txt | AC | 3 ms | 720 KB |
080.txt | AC | 3 ms | 720 KB |
081.txt | AC | 3 ms | 720 KB |
082.txt | AC | 3 ms | 720 KB |
083.txt | AC | 3 ms | 720 KB |
084.txt | AC | 3 ms | 720 KB |
085.txt | AC | 3 ms | 724 KB |
086.txt | AC | 3 ms | 720 KB |
087.txt | AC | 3 ms | 724 KB |
088.txt | AC | 16 ms | 720 KB |
089.txt | AC | 300 ms | 1228 KB |
090.txt | AC | 150 ms | 972 KB |
091.txt | AC | 3 ms | 716 KB |
092.txt | AC | 3 ms | 712 KB |
093.txt | AC | 3 ms | 720 KB |
094.txt | AC | 3 ms | 724 KB |
095.txt | AC | 3 ms | 716 KB |
096.txt | AC | 3 ms | 720 KB |
097.txt | AC | 3 ms | 716 KB |
098.txt | AC | 3 ms | 720 KB |
099.txt | AC | 3 ms | 720 KB |
100.txt | AC | 3 ms | 720 KB |
101.txt | AC | 15 ms | 588 KB |
102.txt | AC | 299 ms | 1228 KB |
103.txt | AC | 148 ms | 844 KB |
104.txt | AC | 3 ms | 716 KB |
105.txt | AC | 3 ms | 720 KB |
106.txt | AC | 3 ms | 724 KB |
107.txt | AC | 3 ms | 720 KB |
108.txt | AC | 3 ms | 720 KB |
109.txt | AC | 3 ms | 720 KB |
110.txt | AC | 3 ms | 724 KB |
111.txt | AC | 3 ms | 720 KB |
112.txt | AC | 3 ms | 720 KB |
113.txt | AC | 3 ms | 716 KB |
114.txt | AC | 16 ms | 592 KB |
115.txt | AC | 301 ms | 1100 KB |
116.txt | AC | 148 ms | 976 KB |
117.txt | AC | 3 ms | 720 KB |
118.txt | AC | 3 ms | 720 KB |
119.txt | AC | 3 ms | 720 KB |
120.txt | AC | 3 ms | 720 KB |
121.txt | AC | 3 ms | 720 KB |
122.txt | AC | 3 ms | 720 KB |
123.txt | AC | 3 ms | 592 KB |
124.txt | AC | 3 ms | 720 KB |
125.txt | AC | 3 ms | 724 KB |