Submission #72445935
Source Code Expand
Copy
#include <stdio.h>#define MAX 1024int n;int a[MAX];int num = 0;int lowest[MAX];int main(void) {int i;if (scanf("%d", &n) != 1) return 1;for (i = 0; i < n; i++) {if (scanf("%d", &a[i]) != 1) return 1;}for (i = 0; i < n; i++) {int l = -1, ge = num;while (l + 1 < ge) {int m = l + (ge - l) / 2;if (lowest[m] < a[i]) l = m; else ge = m;
#include <stdio.h>
#define MAX 1024
int n;
int a[MAX];
int num = 0;
int lowest[MAX];
int main(void) {
int i;
if (scanf("%d", &n) != 1) return 1;
for (i = 0; i < n; i++) {
if (scanf("%d", &a[i]) != 1) return 1;
}
for (i = 0; i < n; i++) {
int l = -1, ge = num;
while (l + 1 < ge) {
int m = l + (ge - l) / 2;
if (lowest[m] < a[i]) l = m; else ge = m;
}
lowest[ge] = a[i];
if (ge == num) num++;
}
printf("%d\n", num);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | building - ビルの飾り付け (Building) |
| User | mikecat |
| Language | C23 (GCC 14.2.0) |
| Score | 100 |
| Code Size | 485 Byte |
| Status | AC |
| Exec Time | 1 ms |
| Memory | 1648 KiB |
Judge Result
| Set Name | Set01 | Set02 | Set03 | Set04 | Set05 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
| Status |
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| Set01 | 01 |
| Set02 | 02 |
| Set03 | 03 |
| Set04 | 04 |
| Set05 | 05 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01 | AC | 1 ms | 1620 KiB |
| 02 | AC | 1 ms | 1600 KiB |
| 03 | AC | 0 ms | 1624 KiB |
| 04 | AC | 0 ms | 1620 KiB |
| 05 | AC | 0 ms | 1648 KiB |