結果
| 問題 |
No.112 ややこしい鶴亀算
|
| コンテスト | |
| ユーザー |
startcpp
|
| 提出日時 | 2015-02-23 14:35:52 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 896 bytes |
| コンパイル時間 | 412 ms |
| コンパイル使用メモリ | 54,588 KB |
| 実行使用メモリ | 6,948 KB |
| 最終ジャッジ日時 | 2024-06-23 21:55:43 |
| 合計ジャッジ時間 | 1,313 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 18 WA * 5 |
ソースコード
//方程式解く必要がなかったな。
#include<iostream>
using namespace std;
int n;
int a[51];
int turu, kame;
bool count(int t) {
turu = 0; kame = 0;
for( int i = 0; i < n; i++ ) {
if ( t == 2 ) turu++;
else if ( t == 4 ) kame++;
else return false;
t = -(a[i+1] - a[i] - t);
}
return true;
}
int main() {
cin >> n;
for( int i = 0; i < n; i++ )
cin >> a[i];
//a[i+1]-a[i] = i番目の動物の足の本数 - i+1番目の動物の足の本数
//0番目の動物の足の本数(鶴orカメ)を決めれば、そのあとは一意(であり矛盾するかどうかはO(N)で分かる)
//矛盾しないルートを選択して、このときの各動物の足のから、各動物が鶴か亀かを判定する。最後にカウント。
if ( count(2) ) { cout << turu << " " << kame << endl; return 0; }
count(4);
cout << turu << " " << kame << endl; return 0;
}
startcpp