Submission #3502209


Source Code Expand

#include <limits.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

// 内部定数
#define D_ON			1										// 汎用フラグ - ON
#define D_OFF			0										// 汎用フラグ - OFF

// 内部変数
static FILE *szpFpI;											// 入力

// 内部変数 - テスト用
#ifdef D_TEST
	static int siRes;
	static FILE *szpFpA;
#endif

// 大きい値を取得
int
fGetLarge(
	int piVal1					// <I> 値1
	, int piVal2				// <I> 値2
)
{
	if (piVal1 > piVal2) {
		return piVal1;
	}
	else {
		return piVal2;
	}
}

// 実行メイン
int
fMain(
	int piTNo					// <I> テスト番号 1~
)
{
	int i;
	char lc1Buf[1024], lc1Out[1024];

	// 入力 - セット
#ifdef D_TEST
	sprintf(lc1Buf, ".\\Test\\T%d.txt", piTNo);
	szpFpI = fopen(lc1Buf, "r");
	sprintf(lc1Buf, ".\\Test\\A%d.txt", piTNo);
	szpFpA = fopen(lc1Buf, "r");
	siRes = 0;
#else
	szpFpI = stdin;
#endif

	// 地点数 - 取得
	int liCnt;
	fgets(lc1Buf, sizeof(lc1Buf), szpFpI);
	sscanf(lc1Buf, "%d", &liCnt);

	// 高さ - 取得
	int liNow = 0;
	int liUp = D_ON;
	int liLen = 0;
	int liMax = 0;
	for (i = 0; i < liCnt; i++) {
		int liH;
		fgets(lc1Buf, sizeof(lc1Buf), szpFpI);
		sscanf(lc1Buf, "%d", &liH);

		// 前回と比較
		if (liH > liNow) {					// 上昇
			if (liUp == D_ON) {					// 上昇中
				liLen++;
				liMax = fGetLarge(liMax, liLen);
			}
			else {								// 下降中
				liLen = 2;
				liUp = D_ON;						// 上昇中
			}
		}
		else {								// 下降
			liLen++;
			liMax = fGetLarge(liMax, liLen);
			liUp = D_OFF;						// 下降中
		}

		// 現在位置 - 更新
		liNow = liH;
	}
	
	// 結果 - セット
	sprintf(lc1Out, "%d\n", liMax);

	// 結果 - 表示
#ifdef D_TEST
	fgets(lc1Buf, sizeof(lc1Buf), szpFpA);
	if (strcmp(lc1Buf, lc1Out)) {
		siRes = -1;
	}
#else
	printf("%s", lc1Out);
#endif

	// 残データ有無
#ifdef D_TEST
	lc1Buf[0] = '\0';
	fgets(lc1Buf, sizeof(lc1Buf), szpFpA);
	if (strcmp(lc1Buf, "")) {
		siRes = -1;
	}
#endif

	// テストファイルクローズ
#ifdef D_TEST
	fclose(szpFpI);
	fclose(szpFpA);
#endif

	// テスト結果
#ifdef D_TEST
	if (siRes == 0) {
		printf("OK %d\n", piTNo);
	}
	else {
		printf("NG %d\n", piTNo);
	}
#endif

	return 0;
}

int
main()
{

#ifdef D_TEST
	int i;
	for (i = D_TEST_SNO; i <= D_TEST_ENO; i++) {
		fMain(i);
	}
#else
	fMain(0);
#endif

	return 0;
}

Submission Info

Submission Time
Task B - 山のデータ
User asugen0402
Language C (GCC 5.4.1)
Score 100
Code Size 2512 Byte
Status AC
Exec Time 50 ms
Memory 128 KB

Compile Error

./Main.c: In function ‘fMain’:
./Main.c:58:2: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
  fgets(lc1Buf, sizeof(lc1Buf), szpFpI);
  ^
./Main.c:68:3: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result [-Wunused-result]
   fgets(lc1Buf, sizeof(lc1Buf), szpFpI);
   ^

Judge Result

Set Name Sample Subtask1 Subtask2
Score / Max Score 0 / 0 30 / 30 70 / 70
Status
AC × 2
AC × 17
AC × 32
Set Name Test Cases
Sample subtask0-sample-01.txt, subtask0-sample-02.txt
Subtask1 subtask0-sample-01.txt, subtask0-sample-02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt
Subtask2 subtask0-sample-01.txt, subtask0-sample-02.txt, subtask1-01.txt, subtask1-02.txt, subtask1-03.txt, subtask1-04.txt, subtask1-05.txt, subtask1-06.txt, subtask1-07.txt, subtask1-08.txt, subtask1-09.txt, subtask1-10.txt, subtask1-11.txt, subtask1-12.txt, subtask1-13.txt, subtask1-14.txt, subtask1-15.txt, subtask2-01.txt, subtask2-02.txt, subtask2-03.txt, subtask2-04.txt, subtask2-05.txt, subtask2-06.txt, subtask2-07.txt, subtask2-08.txt, subtask2-09.txt, subtask2-10.txt, subtask2-11.txt, subtask2-12.txt, subtask2-13.txt, subtask2-14.txt, subtask2-15.txt
Case Name Status Exec Time Memory
subtask0-sample-01.txt AC 1 ms 128 KB
subtask0-sample-02.txt AC 1 ms 128 KB
subtask1-01.txt AC 1 ms 128 KB
subtask1-02.txt AC 1 ms 128 KB
subtask1-03.txt AC 1 ms 128 KB
subtask1-04.txt AC 1 ms 128 KB
subtask1-05.txt AC 1 ms 128 KB
subtask1-06.txt AC 1 ms 128 KB
subtask1-07.txt AC 1 ms 128 KB
subtask1-08.txt AC 1 ms 128 KB
subtask1-09.txt AC 1 ms 128 KB
subtask1-10.txt AC 1 ms 128 KB
subtask1-11.txt AC 1 ms 128 KB
subtask1-12.txt AC 1 ms 128 KB
subtask1-13.txt AC 1 ms 128 KB
subtask1-14.txt AC 1 ms 128 KB
subtask1-15.txt AC 1 ms 128 KB
subtask2-01.txt AC 3 ms 128 KB
subtask2-02.txt AC 14 ms 128 KB
subtask2-03.txt AC 25 ms 128 KB
subtask2-04.txt AC 48 ms 128 KB
subtask2-05.txt AC 48 ms 128 KB
subtask2-06.txt AC 48 ms 128 KB
subtask2-07.txt AC 50 ms 128 KB
subtask2-08.txt AC 48 ms 128 KB
subtask2-09.txt AC 48 ms 128 KB
subtask2-10.txt AC 48 ms 128 KB
subtask2-11.txt AC 50 ms 128 KB
subtask2-12.txt AC 48 ms 128 KB
subtask2-13.txt AC 50 ms 128 KB
subtask2-14.txt AC 48 ms 128 KB
subtask2-15.txt AC 50 ms 128 KB