2575:Jolly Jumpers
keyword
数列 C++
概要
長さnの数列が与えられる。隣接する要素の差を列挙したとき1,…,n-1が全て出現するかどうかを求める問題。
愚直に書くだけで良い。配列使って書くときはsegmentation faultに注意。
int main(){ static int ds[3000]; int i, cur, next, dif, n; while(scanf("%d",&n)!=EOF){ scanf("%d",&next); REP(i,3000) ds[i] = 0; REP(i,n-1){ scanf("%d",&cur); dif = abs(next-cur); if(0<dif && dif<n) ds[dif] = 1; next = cur; } if(accumulate(ds+1, ds+n, 0) == n-1)printf("Jolly\n"); else printf("Not jolly\n"); } return 0; }