/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Operations
{
public final int SET = 1;
int rows;
int cols;
int objects;
int times;
int doubles = 0;
int empty = 0;
// declare the array
private int[][] world;
public Operations() {}
public Operations(int rows, int cols, int objects, int times)
{
this.rows = rows;
this.cols = cols;
this.objects = objects;
this.times = times;
world = new int[rows][cols];
}
public void setParameters(int rows, int cols, int objects, int times)
{
this.rows = rows;
this.cols = cols;
this.objects = objects;
this.times = times;
// initialize the array
world = new int[rows][cols];
}
{
// empty constructor
Operations ops = new Operations();
// At this point world is null
System.
out.
println("Empty constructor: " + Arrays.
deepToString(ops.
world)); // initialize the array
ops.setParameters(1, 1, 1, 1);
// world has been initialized
System.
out.
println("After setParameters: " + Arrays.
deepToString(ops.
world));
System.
out.
println("-------------------------------------------");
// full constructor
Operations ops2 = new Operations(1, 1, 1, 1);
// world has been initialized
System.
out.
println("Full constructor: " + Arrays.
deepToString(ops2.
world)); // reinitialize the array
ops2.setParameters(2, 2, 2, 2);
System.
out.
println("After setParameters: " + Arrays.
deepToString(ops2.
world)); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgT3BlcmF0aW9ucwp7CgogICBwdWJsaWMgZmluYWwgaW50IFNFVCA9IDE7CiAgIGludCByb3dzOwogICBpbnQgY29sczsKICAgaW50IG9iamVjdHM7CiAgIGludCB0aW1lczsKICAgaW50IGRvdWJsZXMgPSAwOwogICBpbnQgZW1wdHkgPSAwOwogICAvLyBkZWNsYXJlIHRoZSBhcnJheQogICBwcml2YXRlIGludFtdW10gd29ybGQ7CiAgIAogICBwdWJsaWMgT3BlcmF0aW9ucygpIHt9CiAgIAogICBwdWJsaWMgT3BlcmF0aW9ucyhpbnQgcm93cywgaW50IGNvbHMsIGludCBvYmplY3RzLCBpbnQgdGltZXMpCiAgIHsKICAgICAgdGhpcy5yb3dzID0gcm93czsKICAgICAgdGhpcy5jb2xzID0gY29sczsKICAgICAgdGhpcy5vYmplY3RzID0gb2JqZWN0czsKICAgICAgdGhpcy50aW1lcyA9IHRpbWVzOwogICAgICB3b3JsZCA9IG5ldyBpbnRbcm93c11bY29sc107CiAgIH0KCiAgIHB1YmxpYyB2b2lkIHNldFBhcmFtZXRlcnMoaW50IHJvd3MsIGludCBjb2xzLCBpbnQgb2JqZWN0cywgaW50IHRpbWVzKQogICB7CiAgICAgIHRoaXMucm93cyA9IHJvd3M7CiAgICAgIHRoaXMuY29scyA9IGNvbHM7CiAgICAgIHRoaXMub2JqZWN0cyA9IG9iamVjdHM7CiAgICAgIHRoaXMudGltZXMgPSB0aW1lczsKICAgICAgLy8gaW5pdGlhbGl6ZSB0aGUgYXJyYXkKICAgICAgd29ybGQgPSBuZXcgaW50W3Jvd3NdW2NvbHNdOwogICB9CQogICAKICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCiAgIHsKICAgCSAgICAvLyBlbXB0eSBjb25zdHJ1Y3RvcgoJCU9wZXJhdGlvbnMgb3BzID0gbmV3IE9wZXJhdGlvbnMoKTsKCQkvLyBBdCB0aGlzIHBvaW50IHdvcmxkIGlzIG51bGwKCQlTeXN0ZW0ub3V0LnByaW50bG4oIkVtcHR5IGNvbnN0cnVjdG9yOiAiICsgQXJyYXlzLmRlZXBUb1N0cmluZyhvcHMud29ybGQpKTsKCQkvLyBpbml0aWFsaXplIHRoZSBhcnJheQoJCW9wcy5zZXRQYXJhbWV0ZXJzKDEsIDEsIDEsIDEpOwoJCS8vIHdvcmxkIGhhcyBiZWVuIGluaXRpYWxpemVkCgkJU3lzdGVtLm91dC5wcmludGxuKCJBZnRlciBzZXRQYXJhbWV0ZXJzOiAiICsgQXJyYXlzLmRlZXBUb1N0cmluZyhvcHMud29ybGQpKTsKCQkKCQlTeXN0ZW0ub3V0LnByaW50bG4oIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKCQkKCQkvLyBmdWxsIGNvbnN0cnVjdG9yCgkJT3BlcmF0aW9ucyBvcHMyID0gbmV3IE9wZXJhdGlvbnMoMSwgMSwgMSwgMSk7CgkJLy8gd29ybGQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQKCQlTeXN0ZW0ub3V0LnByaW50bG4oIkZ1bGwgY29uc3RydWN0b3I6ICIgKyBBcnJheXMuZGVlcFRvU3RyaW5nKG9wczIud29ybGQpKTsKCQkvLyByZWluaXRpYWxpemUgdGhlIGFycmF5CgkJb3BzMi5zZXRQYXJhbWV0ZXJzKDIsIDIsIDIsIDIpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiQWZ0ZXIgc2V0UGFyYW1ldGVyczogIiArIEFycmF5cy5kZWVwVG9TdHJpbmcob3BzMi53b3JsZCkpOwogICB9Cn0=