Submission #13089951
Source Code Expand
import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.PriorityQueue;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.AbstractCollection;
import java.util.StringTokenizer;
import java.io.Writer;
import java.io.OutputStreamWriter;
import java.io.BufferedReader;
import java.util.Comparator;
import java.util.Collections;
import java.io.InputStream;
/**
* Built using CHelper plug-in
* Actual solution is at the top
*/
public class Main {
public static void main(String[] args) {
InputStream inputStream = System.in;
OutputStream outputStream = System.out;
InputReader in = new InputReader(inputStream);
OutputWriter out = new OutputWriter(outputStream);
TaskF solver = new TaskF();
solver.solve(1, in, out);
out.close();
}
static class TaskF {
public void solve(int testNumber, InputReader in, OutputWriter out) {
int N = in.nextInt();
int required[] = new int[N];
int total[] = new int[N];
int sum = 0;
for (int i = 0; i < N; i++) {
String s = in.next();
int M = s.length();
int current = 0;
for (int j = 0; j < M; j++) {
if (s.charAt(j) == '(') {
current++;
} else {
current--;
if (current < 0) {
required[i] = Math.max(required[i], Math.abs(current));
}
}
}
total[i] = current;
sum += current;
}
if (sum != 0) {
out.printLine("No");
return;
}
Pair p[] = new Pair[N];
for (int i = 0; i < N; i++) {
p[i] = new Pair(required[i], total[i]);
}
Arrays.sort(p, new Comparator<Pair>() {
public int compare(Pair o1, Pair o2) {
if (o1.req != o2.req) {
return o1.req - o2.req;
} else {
return o2.tot - o1.tot;
}
}
});
sum = 0;
int i = 0;
PriorityQueue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder());
while (i < N) {
while (i < N && p[i].req <= sum) {
queue.add(p[i].tot);
i++;
}
if (queue.isEmpty()) {
out.printLine("No");
return;
}
sum += queue.poll();
}
out.printLine("Yes");
}
class Pair {
int req;
int tot;
public Pair(int req, int tot) {
this.req = req;
this.tot = tot;
}
}
}
static class InputReader {
BufferedReader in;
StringTokenizer tokenizer = null;
public InputReader(InputStream inputStream) {
in = new BufferedReader(new InputStreamReader(inputStream));
}
public String next() {
try {
while (tokenizer == null || !tokenizer.hasMoreTokens()) {
tokenizer = new StringTokenizer(in.readLine());
}
return tokenizer.nextToken();
} catch (IOException e) {
return null;
}
}
public int nextInt() {
return Integer.parseInt(next());
}
}
static class OutputWriter {
PrintWriter writer;
public OutputWriter(OutputStream outputStream) {
writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(outputStream)));
}
public OutputWriter(Writer writer) {
this.writer = new PrintWriter(writer);
}
public void print(Object... objects) {
for (int i = 0; i < objects.length; i++) {
if (i != 0) {
writer.print(' ');
}
writer.print(objects[i]);
}
}
public void printLine(Object... objects) {
print(objects);
writer.println();
}
public void close() {
writer.close();
}
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Bracket Sequencing |
| User | phantom11 |
| Language | Java (OpenJDK 11.0.6) |
| Score | 0 |
| Code Size | 4776 Byte |
| Status | WA |
| Exec Time | 623 ms |
| Memory | 93404 KiB |
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 600 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01, sample_02, sample_03, sample_04 |
| All | random_01, random_02, random_03, random_04, random_05, random_06, random_07, random_08, random_09, random_10, random_11, random_12, random_13, random_21, random_22, random_23, random_31, random_32, random_33, random_41, random_42, random_43, random_51, random_52, random_53, random_61, random_62, random_63, sample_01, sample_02, sample_03, sample_04 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| random_01 | AC | 394 ms | 61800 KiB |
| random_02 | AC | 607 ms | 84784 KiB |
| random_03 | AC | 488 ms | 64824 KiB |
| random_04 | AC | 623 ms | 93404 KiB |
| random_05 | AC | 271 ms | 60540 KiB |
| random_06 | AC | 254 ms | 58252 KiB |
| random_07 | AC | 193 ms | 44468 KiB |
| random_08 | AC | 186 ms | 38340 KiB |
| random_09 | AC | 182 ms | 36276 KiB |
| random_10 | AC | 219 ms | 57828 KiB |
| random_11 | AC | 71 ms | 32972 KiB |
| random_12 | AC | 68 ms | 32760 KiB |
| random_13 | AC | 65 ms | 32760 KiB |
| random_21 | AC | 64 ms | 32764 KiB |
| random_22 | AC | 66 ms | 32604 KiB |
| random_23 | AC | 70 ms | 32792 KiB |
| random_31 | AC | 66 ms | 32696 KiB |
| random_32 | AC | 73 ms | 33076 KiB |
| random_33 | AC | 76 ms | 33068 KiB |
| random_41 | AC | 66 ms | 32572 KiB |
| random_42 | AC | 65 ms | 32624 KiB |
| random_43 | AC | 69 ms | 33116 KiB |
| random_51 | WA | 75 ms | 33040 KiB |
| random_52 | WA | 68 ms | 32668 KiB |
| random_53 | AC | 65 ms | 32592 KiB |
| random_61 | AC | 285 ms | 54080 KiB |
| random_62 | AC | 364 ms | 63536 KiB |
| random_63 | AC | 409 ms | 64324 KiB |
| sample_01 | AC | 66 ms | 32656 KiB |
| sample_02 | AC | 62 ms | 32692 KiB |
| sample_03 | AC | 64 ms | 32800 KiB |
| sample_04 | AC | 62 ms | 32416 KiB |