On Thursday, 9 April 2015 at 11:04:00 UTC, Dennis Ritchie wrote:
Hi,
Is it allowed in D similar designs?

void main() {
        import std.stdio;
        return writeln("Hello, world!");
}

It seems that you can not do so because writeln() something back, which leads to RUNTIME_ERROR in DMD 2.066.1:

OK:
-----
import std.conv;
import std.stdio;
import std.string;

void main() {
        
        int n = readln.strip.to!int;
        string s = readln.strip;
        
        foreach (from; 0 .. n)
        foreach (jump; 1 .. n) {
                bool ok;
                foreach (i; 0 .. 5) {
                        int pos = from + i * jump;
                        if (pos >= n || s[pos] != '*') {
                                ok = true;
                                break;
                        }
                }
                if (!ok)
                        return write("yes");
        }
        
        write("no");
}
-----
http://codeforces.ru/contest/526/submission/10641745?locale=en

RUNTIME_ERROR:
-----
import std.conv;
import std.stdio;
import std.string;

void main() {

        int n = readln.strip.to!int;
        string s = readln.strip;

        foreach (from; 0 .. n)
                foreach (jump; 1 .. n) {
                        bool ok;
                        foreach (i; 0 .. 5) {
                                int pos = from + i * jump;
                                if (pos >= n || s[pos] != '*') {
                                        ok = true;
                                        break;
                                }
                        }
                        if (!ok)
                                return writeln("yes");
                }

        writeln("no");
}
-----
http://codeforces.ru/contest/526/submission/10641695?locale=en

Reply via email to