AOJ0258 Kitchen Garden

問題リンク Kitchen Garden

  • 解法

i番目の草が雑草の場合、数列からi番目を除いたものが等差数列になるので、iをN+1通り全部試せば解けます

  • ソース
import java.util.Arrays;
import java.util.Scanner;

//Kitchen Garden
public class AOJ0258 {

	void run(){
		Scanner sc = new Scanner(System.in);
		for(;;){
			int n = sc.nextInt();
			if(n==0)break;
			int[] a = new int[n+1];
			for(int i=0;i<=n;i++)a[i]=sc.nextInt();
			for(int i=0;i<=n;i++){
				boolean f = true;
				int d = i==0?a[2]-a[1]:i==1?a[2]-a[0]:a[1]-a[0];
				int pre = i==0?a[1]:a[0];
				for(int j=i==0?2:i==1?2:1;j<=n&&f;j++){
					if(j==i)continue;
					f&=pre+d==a[j];
					pre = a[j];
				}
				if(f){
					System.out.println(a[i]); break;
				}
			}
		}
	}

	void debug(Object...o){
		System.out.println(Arrays.deepToString(o));
	}

	public static void main(String[] args) {
		new AOJ0258().run();
	}
}