結果
| 問題 |
No.135 とりあえず1次元の問題
|
| コンテスト | |
| ユーザー |
HiroakiSoftware
|
| 提出日時 | 2015-01-25 23:58:38 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
TLE
|
| 実行時間 | - |
| コード長 | 1,179 bytes |
| コンパイル時間 | 286 ms |
| コンパイル使用メモリ | 27,264 KB |
| 実行使用メモリ | 10,496 KB |
| 最終ジャッジ日時 | 2025-01-03 03:08:01 |
| 合計ジャッジ時間 | 22,865 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 20 TLE * 2 |
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:15:15: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
15 | scanf ( "%d" , &N );
| ~~~~~~^~~~~~~~~~~~~
main.cpp:22:23: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
22 | scanf ( "%d" , pX + i );
| ~~~~~~^~~~~~~~~~~~~~~~~
main.cpp:42:9: warning: ‘diff’ may be used uninitialized [-Wmaybe-uninitialized]
42 | if ( diff == -1 ) diff = 0;
| ^~
main.cpp:19:13: note: ‘diff’ was declared here
19 | int diff , diffbuf;
| ^~~~
ソースコード
#include <stdio.h>
int *pX = nullptr;
int N = 0;
int GetDiff ( int idx1 , int idx2 );
int main ( void ) {
scanf ( "%d" , &N );
pX = new int [ N ];
int diff , diffbuf;
for ( int i = 0; i < N; i++ ) {
scanf ( "%d" , pX + i );
}
for ( int i = 0; i < ( N - 1 ); i++ ) {
//printf ( "Call\n" );
if ( i == 0 ) {
diff = GetDiff ( i , i + 1 );
} else {
diffbuf = GetDiff ( i , i + 1 );
if ( diffbuf != -1 ) {
if ( diffbuf < diff ) diff = diffbuf;
}
}
if ( diff == 1 )break;
}
delete []pX;
if ( diff == -1 ) diff = 0;
printf ( "%d\n" , diff );
return 0;
}
int GetDiff ( int idx1 , int idx2 ) {
//printf ( "%d %d\n" , idx1 , idx2 );
bool bEnableCurrent = false;
int Current;
if ( *( pX + idx1 ) != *( pX + idx2 ) ) {
bEnableCurrent = true;
Current = *( pX + idx1 ) - *( pX + idx2 );
if ( Current < 0 ) Current *= -1;
if ( Current == 1 ) return Current;
}
int diff= -1 , idxnext;
idxnext = idx2 + 1;
diff = ( idxnext < N ) ? GetDiff ( idx1 , idxnext ) : -1;
if ( diff == 1 )return diff;
if ( bEnableCurrent ) {
if (diff != -1 )return ( Current < diff ) ? Current : diff;
return Current;
}
return diff;
}
HiroakiSoftware