範例程式碼 uva1746
//uva1746
#include<iostream>
using namespace std;
int main(){
int numbers;
int origin_quote[110];
int quote[110];
int left, right;
int start;
int temp;
int total;
while (cin >> numbers){
for (int i = 0; i < 110; ++i)
origin_quote[i] = 0;
for (int i = 0; i < numbers; ++i)
cin >> origin_quote[i];
if (origin_quote[0] < origin_quote[numbers - 1])
start = origin_quote[0];
else
start = origin_quote[numbers - 1];
for (int i = start; i >= 0; --i){
for (int j = 0; j < 110; ++j)
quote[j] = origin_quote[j];
left = 0;
right = numbers-1;
for (temp = i; ; ){
if (quote[left] < temp || quote[right] < temp){
if(i == 0){
cout<<"no quotation"<<endl;
goto finish;
}
break;
}
quote[left] -= temp;
quote[right] -= temp;
if (quote[left] == 0)
++left;
if (quote[right] == 0)
--right;
--temp;
if (temp == 0){
if(i == 1){
if(numbers == 1 && origin_quote[0] == 2 || numbers == 2 && origin_quote[0] == 1 && origin_quote[1] == 1){
cout << i <<endl;
goto finish;
}else{
cout<<"no quotation"<<endl;
goto finish;
}
}
total = 0;
for (int k = left; k <= right;++k){
total+=quote[k];
}
if(total % 2 == 0){
cout << i <<endl;
goto finish;
}else
cout<<"no quotation"<<endl;
goto finish;
}
}
}
finish:;
}
}