Submission #746514
Source Code Expand
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
void QSort(int x[], int y[],int left, int right)
{
int i, j;
int pivot;
i = left; /* ソートする配列の一番小さい要素の添字 */
j = right; /* ソートする配列の一番大きい要素の添字 */
pivot = x[(left + right) / 2]; /* 基準値を配列の中央付近にとる */
while (1) { /* 無限ループ */
while (x[i] < pivot) /* pivot より大きい値が */
i++; /* 出るまで i を増加させる */
while (pivot < x[j]) /* pivot より小さい値が */
j--; /* 出るまで j を減少させる */
if (i >= j) /* i >= j なら */
break; /* 無限ループから抜ける */
Swap(x, y,i, j); /* x[i] と x[j]を交換 */
i++; /* 次のデータ */
j--;
}
/* 途中経過を表示 */
if (left < i - 1) /* 基準値の左に 2 以上要素があれば */
QSort(x,y, left, i - 1); /* 左の配列を Q ソートする */
if (j + 1 < right) /* 基準値の右に 2 以上要素があれば */
QSort(x,y, j + 1, right); /* 右の配列を Q ソートする */
}
/* 配列の要素を交換する */
void Swap(int x[],int y[], int i, int j)
{
int temp;
temp = x[i];
x[i] = x[j];
x[j] = temp;
temp = y[i];
y[i] = y[j];
y[j] = temp;
}
int main() {
/*
string s;
cin >> s;
int i;
char c;
for (i = 0; s[i] != '\0';i++) {
c = s[i];
}
if (c == 'T') {
cout << "YES" << endl;
}
else {
cout << "NO" << endl;
}
*/
/*
int H1, H2;
int W1,W2;
cin >> H1 >> W1;
cin >> H2 >> W2;
if (H1 == H2) {
cout << "YES" << endl;
return 0;
}
if (H1 == W2) {
cout << "YES" << endl;
return 0;
}
if (W1 == W2) {
cout << "YES" << endl;
return 0;
}
if (W1 == H2) {
cout << "YES" << endl;
return 0;
}
cout << "NO" << endl;
return 0;
*/
/*
int N;
cin >> N;
int *a = (int *)malloc(sizeof(int *) * N);
int i;
for (i = 0; i < N; i++) {
cin >> a[i];
}
int j;
int count = N;
for (i = 0; i < N; i++) {
for (j = i;j < N-1; j++) {
if (a[j] < a[j + 1]) {
}
else {
if (j != i) {
count += (j - i) * (j - i + 1) / 2;
i = j;
}
else {
count++;
}
break;
}
}
}
for (i = 0; i < N-1; i++) {
while (a[i] < a[i + 1]) {
}
}
cout << count << endl;
*/
int N;
cin >> N;
int *h, *w;
w = (int*)malloc(sizeof(int) * N);
h = (int*)malloc(sizeof(int) * N);
int i;
for (i = 0; i < N; i++) {
cin >> w[i] >> h[i];
}
QSort(w,h, 0, N - 1);
int *leng;
leng = (int*)malloc(sizeof(int) * N);
int i;
for (i = 0; i < N; i++) {
leng[i] = 0;
}
int j;
int count = N;
for (i = 0; i < N; i++) {
for (j = i;j < N - 1; j++) {
if (h[j] < h[j + 1]) {
}
else {
if (j != i) {
leng[i] = j - i;
i = j;
}
else {
}
break;
}
}
}
QSort(leng, w, 0, N - 1);
cout << leng[N - 1] << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - プレゼント |
| User | tetraPro |
| Language | C++14 (GCC 5.4.1) |
| Score | 0 |
| Code Size | 3312 Byte |
| Status | CE |
Compile Error
./Main.cpp: In function ‘void QSort(int*, int*, int, int)’:
./Main.cpp:27:17: error: ‘Swap’ was not declared in this scope
Swap(x, y,i, j); /* x[i] と x[j]を交換 */
^
./Main.cpp: In function ‘int main()’:
./Main.cpp:169:6: error: redeclaration of ‘int i’
int i;
^
./Main.cpp:157:6: note: ‘int i’ previously declared here
int i;
^